laravel 5.2-使用和存储多个值
我有一个2表用户和报告 报告模型laravel 5.2-使用和存储多个值,laravel,eloquent,records,Laravel,Eloquent,Records,我有一个2表用户和报告 报告模型 public function user() { return $this->belongsTo('App\User', 'author_id'); } 用户模型 public function reports() { return $this->hasMany('App\Report', 'author_id'); } 在用户模型中有一个名为“sum_sales”的列 在报表模型中有一个名为“总计”的列 我如何将报表模型中的总和
public function user() {
return $this->belongsTo('App\User', 'author_id');
}
用户模型
public function reports() {
return $this->hasMany('App\Report', 'author_id');
}
在用户模型中有一个名为“sum_sales”的列
在报表模型中有一个名为“总计”的列
我如何将报表模型中的总和(总计)传递到用户模型中的“总和”?
我的报表管理员
public function store(Request $request)
{
$this->validate($request, ['title' => 'required',
'date' => 'required|date_format:d/m/Y|regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/',
'image_1' => 'required|mimes:png,jpeg',
'products' => 'required',
'total' => 'required',
'time' => 'required|min:2',
'location' => 'required',
'sub_location' => 'required',
]);
$user = Auth::user()->id;
$report = new Report($request->all());
$report->author_id = $user;
$image = $request->file('image_1');
$destinationPath = 'uploads/reports';
$ext = $image->getClientOriginalExtension();
$fileName = rand(11111,99999).'.'.$ext;
$report->image_1 = $image->move($destinationPath, $fileName);
$field_total = $request->input('total');
$sum_total = $report->sum('total');
$totalSum = $field_total + $sum_total;
$report->author_id->sum_sales = $totalSum;
$report->save();
Session::flash('flash_message', 'Report added!');
return redirect('dash/reports');
}
有了这个,浏览器会说:
Indirect modification of overloaded property App\Report::$author_id has no effect
我怎么知道 由Giedrius Kiršys解决
public function store(Request $request)
{
$this->validate($request, ['title' => 'required',
'date' => 'required|date_format:d/m/Y|regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/',
'image_1' => 'required|mimes:png,jpeg',
'products' => 'required',
'total' => 'required',
'time' => 'required|min:2',
'location' => 'required',
'sub_location' => 'required',
]);
$user = Auth::user()->id;
$report = new Report($request->all());
$report->author_id = $user;
$image = $request->file('image_1');
$destinationPath = 'uploads/reports';
$ext = $image->getClientOriginalExtension();
$fileName = rand(11111,99999).'.'.$ext;
$report->image_1 = $image->move($destinationPath, $fileName);
$report->save();
$sumUserTotal = User::find($user)->reports->sum('total');
Auth::user()->update(['sum_sales' => $sumUserTotal]);
Session::flash('flash_message', 'Report added!');
return redirect('dash/reports');
}
由Giedrius Kiršys解决
public function store(Request $request)
{
$this->validate($request, ['title' => 'required',
'date' => 'required|date_format:d/m/Y|regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/',
'image_1' => 'required|mimes:png,jpeg',
'products' => 'required',
'total' => 'required',
'time' => 'required|min:2',
'location' => 'required',
'sub_location' => 'required',
]);
$user = Auth::user()->id;
$report = new Report($request->all());
$report->author_id = $user;
$image = $request->file('image_1');
$destinationPath = 'uploads/reports';
$ext = $image->getClientOriginalExtension();
$fileName = rand(11111,99999).'.'.$ext;
$report->image_1 = $image->move($destinationPath, $fileName);
$report->save();
$sumUserTotal = User::find($user)->reports->sum('total');
Auth::user()->update(['sum_sales' => $sumUserTotal]);
Session::flash('flash_message', 'Report added!');
return redirect('dash/reports');
}
与其写
$report->author\u id->sum\u sales
,不如写$user->sum\u sales
,你应该可以开始了。我尝试了,但抛出了我:尝试分配非objectWhoops的属性,没有注意到$user
只是一个id。然后写Auth::user()->更新(['sum\u sales'=>$totalSum])
。确保sum\u sales
属性位于可填充数组中。哦,伙计,它可以工作!非常感谢你,我在这个地狱里度过了最后的两天,再次感谢你,而不是$report->author\id->sum\u sales
,写$user->sum\u sales
,你应该可以走了。我尝试了,但扔了我:尝试分配非objectWhoops的属性,没有注意到$user
只是一个id。然后写Auth::user()->更新(['sum\u sales'=>$totalSum])
。确保sum\u sales
属性位于可填充数组中。哦,伙计,它可以工作!非常感谢你,我在这片地狱里度过了最后两天,再次感谢你