通过关系从Laravel eloquent查询中获取ID

时间:2014-04-23 08:57:07

标签: php laravel laravel-4 eloquent

company hasMany users,这种关系是通过数据透视表实现的。我希望能够获得与个人用户相关的公司company.ID

$company_id = User::find(Auth()->$id)->companies->get('$id');

不幸的是,我也尝试了pluck()方法,但没有成功。如何从这样的公式中检索特定值?

2 个答案:

答案 0 :(得分:12)

在您的用户模型中,您应该添加关系belongsTo(如果用户只属于一家公司)

public function company(){

    return belongsTo('company');
}

那么你可以像这样得到公司的身份

$user      = User::find($id);
$company   = $user->company;
$companyId = $company->id;

我希望这会有所帮助

答案 1 :(得分:1)

如果用户只能与一家公司关联,那么您的关系应该反映出来。然后,您就可以使用预先加载来执行以下操作:

// assumes the user is logged in
$user = Auth::user();

// assuming your relationship is set up correctly, you can do this:
echo $user->company->id;

但是,您需要发布与您的模特/关系相关的代码,以获得更全面的答案。