[英]Eloquent laravel, clone entity
I'm trying to clone an entity and the OneTomany relation too. 我也在尝试克隆一个实体和OneTomany关系。 For some reason, the $entity->hasManyRelation() is not a function.
由于某些原因,$ entity-> hasManyRelation()不是函数。 :/
:/
Here's my code.: 这是我的代码:
$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);
}
Any other idea, or what am I doing wrong? 还有其他想法,或者我做错了什么?
The problem is here. 问题在这里。
foreach ($clonedWorksheet->records() as $clonedRecord) {
The records() is the method in the model that does the database query. records()是模型中执行数据库查询的方法。 The return is an eloquent relationship object.
回报是雄辩的关系对象。 You want:
你要:
foreach($clonedWorksheet->records as $clonedRecord) {
Or 要么
foreach ($clonedWorksheet->records()->get() as $clonedRecord) {
Models have a replicate function , which would cut the body of your loop down quite a bit to just: 模型具有复制函数 ,该函数会将循环的主体缩减为:
$record = $cloneRecord->replicate();
$record->worksheet_id = $worksheet->id;
$record->save();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.