首页 > 解决方案 > Laravel 5.5 无法使用 belongsTo 获取选定的列数据

问题描述

我有 2 个与 Eloquent Laravel 相关的模型 ( User& )。UsersDetails

使用“SelDetails”对“用户”进行建模

public function SelDetails {
    return $this->belongsTo('App\UsersDetails', 'users_id');
}

我只想从 SelDetails 中获取两列 'created_by_id'、'created_by_name'

用户控制器

$users = User::with(['SelDetails' => function($query){
        $query->select(['created_by_id', 'created_by_name']);
    }])
    ->where('is_active', '=', 0)
    ->orderBy('id', 'desc')
    ->get();

我正在从中获取数据,User但在SelDetails

[relations:protected] => Array
(
     [SelDetails] => 
)

请纠正我。

标签: laraveleloquentlaravel-5.5

解决方案


伙计们感谢您对这个问题的宝贵回应。我通过以下方式得到了解决方案。

“用户”模型与“SelDetails”关系的变化

public function SelDetails {
    #return $this->belongsTo('App\UsersDetails', 'users_id');// the old one
    return $this->hasOne('App\UsersDetails', 'users_id');
}

“用户控制器”的变化

$users = User::with('SelDetails')->where('is_active', '=', 0)->orderBy('id', 'desc')->get();

这就是我所做的改变并得到了结果

在此处输入图像描述

谢谢


推荐阅读