Php 如果模型id是隐藏字段,如何同步?
我正在尝试将数据同步到我的模型的透视表。但是我的Php 如果模型id是隐藏字段,如何同步?,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我正在尝试将数据同步到我的模型的透视表。但是我的Recipe模型有一个隐藏的id字段。像这样, protected $hidden = ['id', 'content', 'difficulty_id']; 当我尝试将关系同步到透视表时,recipe\u id变为零。如果我从上面的$hidden中删除id,它会毫无问题地同步id。我还尝试调用模型的makeVisible(“id”),但没有帮助 $changedMeals = $record->meals()->sync($meal
Recipe
模型有一个隐藏的id
字段。像这样,
protected $hidden = ['id', 'content', 'difficulty_id'];
当我尝试将关系同步到透视表时,recipe\u id
变为零。如果我从上面的$hidden
中删除id
,它会毫无问题地同步id。我还尝试调用模型的makeVisible(“id”)
,但没有帮助
$changedMeals = $record->meals()->sync($meals);
将id
保存在$hidden
中时如何同步
非常感谢…目前,我使用pivot,在primary中隐藏$hidden,而在pivot中不使用foreign,我使用
sync($request->field\u to\u sync)
和我使用validator来验证ID,这很有效
例如:
因此,我假设您在代码中使用了sync()
,而没有使用Request::input()
,您可以尝试以下方法:
$meals = Meals::select('id')->get()
->map(function($value, $key){
return $value->setVisible(['id']);
});
然后你可以像这样使用sync()
:
Recipe::find(1)->meals()->sync($meals);
Recipe::find(1)->meals()->sync($meals);