OrganizationsController.php
public function user_index()
{
if(!is_null(Organization::find(Auth::user()->player->organization)))
$organization = Organization::find(Auth::user()->player->organization->id);
else $organization=null;
return view('organizations.user_index', [ 'organization' => $organization ]);
}
当“玩家”没有“组织”时,为了避免“试图获取非对象的属性”,我使用了这段代码。但它似乎并不是很好。有更好的方法来获得这个?也许我错了,但是这个方法有一个无用的查询,我是对的吗?
表播放器:id,name
表组织:id,name,player_id
答案 0 :(得分:1)
是的,对于此检查,您可能会执行一个不必要的SQL查询。如果你这样做,你可以摆脱这个:
if(Organization::find(Auth::user()->player->organization_id)
而不是
if(!is_null(Organization::find(Auth::user()->player->organization)))
通过这种方式,您可以在尝试从数据库中获取组织之前检查存储在播放器中的 organization_id 。