从 belongsToMany 关系中获取相关 ID 数组 - Laravel 5.4
Getting array of related IDs from a belongsToMany relation - Laravel 5.4
我有 this 解决方案在 Laravel 5.3
中运行良好
$procedure = Procedure::findOrFail($id);
$attached_stages = $procedure->stages()->getRelatedIds()->toArray();
在我的 Procedure
模型中:
public function stages()
{
return $this->belongsToMany('App\Models\Stage', 'procedure_stage', 'procedure_id', 'stage_id')->withPivot('id','status')->withTimestamps();
}
现在,迁移到 Laravel 5.4 后,我收到此错误:
Call to undefined method Illuminate\Database\Query\Builder::getRelatedIds()
似乎 getRelatedIds
已被删除。
我的问题:
如何获取5.4中的数组?
提前致谢。
要获取 ids 数组,您可以使用 pluck 函数
$procedure->stages()->pluck('stages.id')->toArray();
它已从 5.4 中删除(基本上,只是更改了名称,仅此而已),但是当我在 belongToMany.php
文件的深处查看时,您使用的是另一个名称。用这个
它应该工作得很好。
$attached_stages = $procedure->stages()->allRelatedIds()->toArray();
希望这对您以及将来会遇到该问题并查看本文的其他人有所帮助 post。
可能对 Laravel 5.1:
的用户有用
$procedure->stages()->getQuery()->lists('stage_id')->toArray();
或
$procedure->stages()->getQuery()->pluck('stage_id')->toArray();
这是IDE友好代码版本。 :)
我有 this 解决方案在 Laravel 5.3
中运行良好$procedure = Procedure::findOrFail($id);
$attached_stages = $procedure->stages()->getRelatedIds()->toArray();
在我的 Procedure
模型中:
public function stages()
{
return $this->belongsToMany('App\Models\Stage', 'procedure_stage', 'procedure_id', 'stage_id')->withPivot('id','status')->withTimestamps();
}
现在,迁移到 Laravel 5.4 后,我收到此错误:
Call to undefined method Illuminate\Database\Query\Builder::getRelatedIds()
似乎 getRelatedIds
已被删除。
我的问题:
如何获取5.4中的数组?
提前致谢。
要获取 ids 数组,您可以使用 pluck 函数
$procedure->stages()->pluck('stages.id')->toArray();
它已从 5.4 中删除(基本上,只是更改了名称,仅此而已),但是当我在 belongToMany.php
文件的深处查看时,您使用的是另一个名称。用这个
它应该工作得很好。
$attached_stages = $procedure->stages()->allRelatedIds()->toArray();
希望这对您以及将来会遇到该问题并查看本文的其他人有所帮助 post。
可能对 Laravel 5.1:
的用户有用$procedure->stages()->getQuery()->lists('stage_id')->toArray();
或
$procedure->stages()->getQuery()->pluck('stage_id')->toArray();
这是IDE友好代码版本。 :)