变更关系记录Laravel5.2
我有以下问题,我有两个模型Level和Class:Level有关系classes(),然后在得到Level类之后:变更关系记录Laravel5.2,laravel,eloquent,laravel-5.2,Laravel,Eloquent,Laravel 5.2,我有以下问题,我有两个模型Level和Class:Level有关系classes(),然后在得到Level类之后: $level->classes 返回的数据如下所示: { “id”:1, “名称”:“类别1” }, { “id”:2, “名称”:“2类” } 现在我想放弃第2类,我尝试了这个方法,但不起作用: $ids=[2]; $classes=$level->classes; $classes=$classes->whe
$level->classes
返回的数据如下所示:
{
“id”:1,
“名称”:“类别1”
},
{
“id”:2,
“名称”:“2类”
}
现在我想放弃第2类,我尝试了这个方法,但不起作用:
$ids=[2];
$classes=$level->classes;
$classes=$classes->whereIn('id',$ids);
$level->classes=$classes;
有什么建议吗 您可能可以使用渴望加载来完成您想要的任务。如果只需要一个级别,则必须在“')之后和“->get();”之前添加该级别的约束
您可能能够使用渴望加载来完成您想要的任务。如果只需要一个级别,则必须在“')之后和“->get();”之前添加该级别的约束
使用以下命令:
$level->classes()->其中('id',$id)->get()
这将返回关系类的一个实例,该实例具有普通查询生成器的所有方法。使用以下方法:
$level->classes()->其中('id',$id)->get()
这将返回关系类的一个实例,该实例具有普通查询生成器的所有方法。您想删除记录还是只返回$ids数组中的结果?我想返回$ids数组中的结果我想您可能需要一个
->get()
,在该上,其中。这将有助于解释什么是“它不工作”的确切含义。问题出在哪里?$classes有我想要的结果,但是当我试图更新级别类时,它总是保留原始数据以便理解,您想放弃id:2,但是中的$ids=[2]
方法将返回具有id=2
的类。是吗?你想删除记录还是只返回$ids数组中的结果?我想返回$ids数组中的结果我想你可能需要一个->get()
,其中。这将有助于解释什么是“它不工作”的确切含义。问题出在哪里?$classes有我想要的结果,但是当我试图更新级别类时,它总是保留原始数据以便理解,您想放弃id:2,但是中的$ids=[2]
方法将返回具有id=2
的类。不是吗?更具体地说,我有很多级别,每个级别有很多类,然后我有每个级别的ID要丢弃?在我的情况下,这不起作用更具体地说,我有很多级别,每个级别有很多类,然后我有每个级别的ID要丢弃?在我的情况下,这不起作用
$ids = [2];
$levels = Level::with(
[
'classes' => function ($query) use ($ids) {
$query->whereIn('id', $ids);
}
]
)->get();