我使用這個功能在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'); –