2016-10-03 3 views
0

を更新クエリをしている間、交換が配列されながら、パラメータの不一致を、パターンは私がadderArrayを挿入するために、以下のような本ではにpreg_replace()行き方:Laravel 5.2で

{"projectId":"1","projectName":"My Project","total_project_cost":2200000,"total":2400000,"totalPercentFee":7,"adderArray":[{"name":"Adder 1","value":"100000","firmApercentage":"","firmBpercentage":""},{"name":"Adder 2","value":"100000","firmApercentage":"","firmBpercentage":""}] 

をJSON形式を持つ文字列である私は、ユーザーが持っていますlaravel $ cast。

だから私のモデルがうまく機能している。この

protected $table = 'projects_percent_fee_management'; 

protected $casts = [ 
    'adder_data' => 'array', 
    'project_breakdown' => 'array', 
]; 

protected $fillable = ['project_id','company_id','total_project_cost','adder_data','total','total_percent_fee','project_breakdown','total_budget']; 

挿入のように見ていると、それはadder_dataフィールドに適切adderArrayデータを挿入します。

更新中はpreg_replace()が返されます。パラメータの不一致、パターンは文字列、replacementは配列エラー、フィールドでは "Array"を更新します。

答えて

0

更新中に、対応する列がテーブル(データベース/モデル)に存在しないパラメータを渡そうとしていると思います。

この作業を行うには、モデル内で変数$fillableを使用します。例えば:$fillable配列で定義されている更新でのみこれらのパラメータを取る、モデル内の更新クエリを$fillableを追加することにより

$fillable = ['column_1', 'column_2', 'column_3', 'column_4',..., 'column_n']; 

お手伝いします。 Laravelの一斉割り当てに関する詳細情報 - see this

+0

これは私のための解決策でした! – kerrin