2017-03-08 62 views
0

我使用这个功能在5.3,现在当我尝试使用它在5.4这样的:什么Laravel happend到getRelatedIds 5.4

$post->tags()->getRelatedIds(); 

我得到的错误,功能不存在,我查了5.4的文档,它不再存在。

任何人都知道为什么这个有用的函数被删除,我能做些什么来从相关模型中获取所有ID?

回答

1

在Laravel 5.4和5.5 getRelatedIds跳到一个更通用的方法是通过allRelatedIds取代。

$post->tags()->allRelatedIds(); 
2

为什么它已被删除我的原因不能发言,但如果你知道主键名称的时间提前(即所有的表有一个id列),你可以简单地做

$post->tags()->select('id')->pluck('id'); 

,如果你想你需要通过一些箍

$related = $post->tags(); 
$post->tags() 
    ->select($related->getQualifiedKeyName()) 
    ->pluck($related->getKeyName()); 
+0

我相信添加一个select是多余的,因为Laravel的pluck代码只会选择那些列。看代码,你可以看到pluck调用'get([$ column,$ key])' – Devon

+0

够公平的,直到5.3框架的实现[正在使用](https://github.com/laravel/framework/blob /5.3/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php#L590)。绝对不会确定你从数据库中获取什么。 – peterm

+0

我结束了这样做:return $ this-> tags-> pluck('id'); –