2017-11-05 2 views
2

、私はどこかに私が後で、(例。$ obj-> newAttr = someContent)配列に新しい属性を追加していたコード内のレコードを処理していますオブジェクトをdd()すると#attributesと#originalという2つの配列が表示されますが、新しく作成された属性は#attributes配列にのみ表示されます。私は()オブジェクトをddをするときここ#attributes ddは()私のLaravelコードで

は一例であり、私は#attributesの配列を取得:

#attributes: array:21 [▼ 
"field_name" => "229" 
"company_name" => "Maya Dairy" 
"seeding_rate" => 115 
"id" => 11 
"property_id" => 71 
"acreage" => "73.80" 
"status" => "current" 
"dairy_crop_variety_id" => 19 
"field_weight" => "1432.39" 
"moisture" => "67.00" 
"starch" => null 
"yield_id" => 50 
"crop" => "Wheat: <strong>Sumit 515</strong> @ <strong>21.3 T/c</strong>" 
"variety" => "Sumit 515" 
"planted_at" => "Nov 10, 2016" 
"harvested_at" => "May 1, 2017" 
"crop_age" => 172 
"cropDateLink" => "Harvested: <a href="#" data-toggle="modal" data-target="#editRowCrop" data-id="11" data-method="PATCH"><strong>May 1, 2017</strong> (172 days)</a>" 
"yield" => 21.3 
"inputs" => "" 
"files" => "" 

と元の配列:

#original: array:16 [▼ 
"field_name" => "229" 
"company_name" => "Maya Dairy" 
"seeding_rate" => 115 
"id" => 11 
"property_id" => 71 
"acreage" => "73.80" 
"status" => "current" 
"dairy_crop_variety_id" => 19 
"field_weight" => "1432.39" 
"moisture" => "67.00" 
"starch" => null 
"yield_id" => 50 
"crop" => "Wheat" 
"variety" => "Sumit 515" 
"planted_at" => "2016-11-10" 
"harvested_at" => "2017-05-01" 

これらの配列の違いは何ですか?また、新しく作成された属性は表示されないことがあります。なぜ私は分からない。どんな提案も高く評価されます。

+0

オリジナルとは、コントローラーでモデルを変更する前の元のデータを意味します。 – spirit

答えて

5

$には、現在のバージョンのモデルの属性が含まれています。 $オリジナルには、指定されたオブジェクトの元の値が含まれているはずですから、オブジェクトが作成された値やデータベースからロードされた値を見つけることができます。

注:$元値は、データベースにモデルを保存すると、新しい値で更新されるのに十分賢いです - アイデアは、この配列は、データベース内のオブジェクトのデータを反映すべきであるということです。

関連する問題