加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel:如何通过Eager Loading获取基表的选定列?

发布时间:2020-12-14 19:37:28 所属栏目:大数据 来源:网络整理
导读:例如这里的表结构. User------id-role_id-fname-lname-country_code-mobile-password-remember_token-email-address-location_id 另一张桌子 Role------id-name 现在,如果我想要来自带有角色表的用户表的所有用户信息,我将这样写. $user = User :: with(‘Ro
例如这里的表结构.

User
-----
-id
-role_id
-fname
-lname
-country_code
-mobile
-password
-remember_token
-email
-address
-location_id

另一张桌子

Role
-----
-id
-name

现在,如果我想要来自带有角色表的用户表的所有用户信息,我将这样写.

$user = User :: with(‘Role’) – > where(‘users.id’,$id) – > first() – > toArray();

但它将从用户表中获取所有数据.
我需要的是具有预先加载的用户表的选定列.
仅像fname,lname,mobile,来自用户表的电子邮件和来自角色表的role_name.

我知道如何选择关联表的特定列,如下所示.

public function Role(){
    return $this->belongsTo('AppRole')->select('id','name as role_name');
}

但是如何使用with()选择User表的特定列?

解决方法

尝试这样的事情(我用头写,测试它):

$user = User::with('Role')
            ->where('users.id',$id)
            ->select('users.fname','users.lname','users.mobile','users.email','roles.name as role_name')
            ->first()->toArray();

或直接使用joints.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读