用户的未定义属性$ id。但是用户有ID

时间:2018-05-02 10:32:42

标签: laravel laravel-5 eloquent query-builder

我正在尝试在Laravel中建立一个查询。

我有两张桌子,以下是attirbuteds

用户

  • id(auto)
  • 姓名
  • 电子邮件
  • userType
  • 密码

TenantPreferance

  • id(auto)
  • county
  • type
  • user_id(这是创建他们的用户 偏好)

我正在尝试从某个类型的用户那里获取一组数据,其中用户的ID与首选项中的user_id匹配。

但是我收到了这个错误

  

未定义的属性:Illuminate \ Database \ Eloquent \ Builder :: $ id

$tenants = User::where('userType', 'tenant');
    $Prefereances = TenantPreferance::where($tenants->id, $Prefereances->user_id);
    $users = $Prefereances->get();

3 个答案:

答案 0 :(得分:1)

for:$ tenants = User :: where(' userType',' tenant'); 必须添加: 第一个()

$tenants = User::where('userType', 'tenant')->first();

或:get()

 $tenants = User::where('userType', 'tenant')->get();

答案 1 :(得分:0)

您需要实际运行构建的sql。你还需要得到一个单一的事件。所以我在这个例子中使用first()。像这样 $tenants = User::where('userType', 'tenant')->first();

答案 2 :(得分:0)

$tentants =  User::with('TenantPreferance')->where('userType', 'tenant')->get();

其中TenantPreferance是关系名称