2017-03-08 65 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'); –