繁体   English   中英

雄辩的laravel,克隆实体

[英]Eloquent laravel, clone entity

我也在尝试克隆一个实体和OneTomany关系。 由于某些原因,$ entity-> hasManyRelation()不是函数。 :/

这是我的代码:

$clonedWorksheet = Worksheet::where('id', $id)->get()->load('records');

$worksheet = new Worksheet;

$worksheet->employee_id = $request->employee;
$worksheet->workday = $request->workday;

$worksheet->save();

foreach ($clonedWorksheet->records() as $clonedRecord) {
  $record = new Record;

  $record->from = $clonedRecord->from;
  $record->to = $clonedRecord->to;
  $record->estimated = $clonedRecord->estimated;
  $record->place_id = $clonedRecord->place_id;
  $record->worksheet_id = $worksheet->id;
  $record->vehicle_id = $clonedRecord->vehicle_id;
  $record->tool_id = $clonedRecord->tool_id;
  $record->job_id = $clonedRecord->job_id;
  $record->comment = $clonedRecord->comment;

  $worksheet->records()->save($record);
}

还有其他想法,或者我做错了什么?

问题在这里。

foreach ($clonedWorksheet->records() as $clonedRecord) {

records()是模型中执行数据库查询的方法。 回报是雄辩的关系对象。 你要:

foreach($clonedWorksheet->records as $clonedRecord) {

要么

foreach ($clonedWorksheet->records()->get() as $clonedRecord) {

模型具有复制函数 ,该函数会将循环的主体缩减为:

$record = $cloneRecord->replicate();
$record->worksheet_id = $worksheet->id;
$record->save();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM