簡體   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