【发布时间】:2019-12-20 21:27:36
【问题描述】:
我有以下内容:
镜像模块模型
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function xous()
{
return $this->hasMany('App\Models\Xou');
}
徐模型
public function mirrorModule()
{
return $this->belongsTo('App\Models\MirrorModule');
}
这里是基本的东西。我想要的只是更新就像 ManyToMany 中的同步方法一样,它采用id's 并为您计算出其余部分。
我有一个数组进来,看起来像这样:
我的尝试
if ($request->has('xous')) {
$arr = [];
foreach ($data['xous'] as $value) {
// $arr[] = [
// 'id' => $value['id'],
// ];
// $arr[] = $value;
$xous = Xou::findOrFail($value['id']);
$mm = $mirrorModule->xous()->where('mirror_module_id',$mirrorModule['id'])->get();
$mm->update() // ?? or save() save returns error
}
}
我还查看了这个article 来实现我自己的同步方法,但无法让它工作。
有什么想法吗?也欢迎其他方法。
【问题讨论】:
-
你要做什么,保存
$xous到$mm? -
@rkj 是的。基本上用图片中的数组更新 $mm 模型
-
你可以使用
$mirrorModule->xous()->save($xous); -
@rkj 我试过了,它返回'必须是 Illuminate\Database\Eloquent\Model 的实例,给定数组'。除非我在这里没有得到你的想法?
-
在
$xous = Xou::findOrFail($value['id']);之后使用,然后在$mirrorModule->xous()->save($xous);之后使用
标签: php laravel laravel-5.2