2017-02-10 8 views
0

を使用して0と私はバックエンド(laravel)へのAjaxのポストから来るtrueまたはfalseの価値があると私はmysqlデータベースの1または0としてそれを保存したいです。これは基本的にチェックボックスまたはラジオで、DOMにアクセスして値を取得します。私はミューテーターを追加することができるはずと信じて:ストア真として1偽Laravel +雄弁+ MySQLの

protected $casts = [ 
    'active' => 'boolean', 
]; 

これは1を引くとtrueに変換しない、しかし、それは1としてtrueを格納しません。

ドキュメントには、キャストがしかし、それはキャストが定義されたら、あなたはオプション属性にアクセスし、それもarray

ためキャストは両方の方向に働くと言うん、booleanのための両方の方向に行われることになると言っていません自動的にJSONからPHP配列にデシリアライズされます。 options属性の値を設定すると、指定された配列がストレージ用のJSONに自動的にシリアル化されます。

私はクライアント側で整数に変換できますが、バックエンド。他の考え?多くのテーブルでこの変換が必要になります。私はlaravelを使用しています。012

答えて

0

私はあなたのデータベースの列型がブール値かtinyintのどちらかであることを確認する必要があると信じています。

編集:

しかし、あなたは以下のように、int型に変換するために、あなたのモデルにミューテーター機能を使用することができます。

public function setActiveAttribute($value) 
{ 
    $this->attributes['active'] = (int) $value; 
} 
+0

それは次のとおりです。$卓上>ブール(「アクティブ'); mysql:active tinyint(1) – Iannazzi

+0

私は自分の答えを更新しました。それを見てください。 –

+0

あなたは両方が必要なように見えますが、私たちは同じ結論に達しました。それは私のためのクライアントから0/1上に送信するコードが少ない方法です... – Iannazzi