我使用这个功能在5.3,现在当我尝试使用它在5.4这样的:什么Laravel happend到getRelatedIds 5.4
$post->tags()->getRelatedIds();
我得到的错误,功能不存在,我查了5.4的文档,它不再存在。
任何人都知道为什么这个有用的函数被删除,我能做些什么来从相关模型中获取所有ID?
我使用这个功能在5.3,现在当我尝试使用它在5.4这样的:什么Laravel happend到getRelatedIds 5.4
$post->tags()->getRelatedIds();
我得到的错误,功能不存在,我查了5.4的文档,它不再存在。
任何人都知道为什么这个有用的函数被删除,我能做些什么来从相关模型中获取所有ID?
在Laravel 5.4和5.5 getRelatedIds跳到一个更通用的方法是通过allRelatedIds取代。
$post->tags()->allRelatedIds();
为什么它已被删除我的原因不能发言,但如果你知道主键名称的时间提前(即所有的表有一个id
列),你可以简单地做
$post->tags()->select('id')->pluck('id');
,如果你想你需要通过一些箍
$related = $post->tags();
$post->tags()
->select($related->getQualifiedKeyName())
->pluck($related->getKeyName());
我相信添加一个select是多余的,因为Laravel的pluck代码只会选择那些列。看代码,你可以看到pluck调用'get([$ column,$ key])' – Devon
够公平的,直到5.3框架的实现[正在使用](https://github.com/laravel/framework/blob /5.3/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php#L590)。绝对不会确定你从数据库中获取什么。 – peterm
我结束了这样做:return $ this-> tags-> pluck('id'); –