3
比方說,我有一個User
和Group
模型,它具有一對多關係。用戶可以屬於0
或1
組。組可以有很多用戶。Laravel訪問關係 - 檢查數據是否存在於模型中
當我顯示用戶列表時,我也想顯示他的組名 - 如果他屬於一個。所以我這樣做:
$user->group()->first()->name
如果用戶不屬於一個組,這當然會引發錯誤。
所以我做這樣的事情:
!empty($user->group) ? $user->group()->first()->name : 'No group here'
現在,在我的實際應用不僅僅有group
。我從視圖中循環了更多的關係。像,角色,帳戶等
所以我真的不想混亂我的觀點。有沒有辦法從模型中檢查數據是否存在?
可能是這樣的嗎?
class User extends Model
{
// .. snip
public function group()
{
if (empty($this->group)) {
return 'Nothing here';
}
return $this->hasOne(App\Group::class);
}
}
我該怎麼辦?這已經可用了嗎?我還沒有看到任何文檔或谷歌上可以幫助我(可能尋找谷歌搜索錯誤的話)?
所以,如果任何人都能指引我走向正確的方向,那會很棒。
這就是你要找的東西:http://stackoverflow.com/a/23911985/784588而且,不,你不能定義這樣的關係,bc(渴望)加載的關係不起作用。另外,不要使用'$ user-> group() - > first()'但是'$ user-> group' –
有一個方法FindOrFail(),檢查出 –
所以我想,你在說什麼這幾乎是不可能的?那麼你怎麼做呢?我能想到的最好的是一個三元的表達。 '$ user-> group? $ user-> group-> name:'這裏沒有組'。 – clueless