数据库一对多关联,如何得到一对应表的字段值

如有两张表,
一张users表,一张books表,一个用户对应多种书籍,一对多关联
users表字段,id,username,email,address
books表,id,user_id,title
然后我想得到 username,title数据
类似下面的表结果
编号 用户名 书名
1 张三 三国演义
2 张三 红楼梦
3 王五 西游记
4 李四 水浒传

类似上面的表,我自己写了一个,在控制器里面

$users = User::has('book')->get();
$arr=array();
foreach ($users as $user) {
  $tmp = $user->book()->get()->toArray();
  foreach ($tmp as $book){
  $arr[] = $book;
 }}

上面的$arr数据库
$arr=array(0=>[
‘id’=>1,
‘user_id’=>2
‘title’=>’三国演义’
]…);
只有user_id,得不到username,如果在关联查询时候获得对应一里面的字段值呢?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

$users = User::with('book')->get(); $arr=array(); foreach ($users as $user) { $tmp = $user->book()->get()->toArray(); foreach ($tmp as $book){ $book['username'] =$user->username; $arr[] = $book; }} 因为我还想做分页,所以最终数组是两层的 file 用with时候就多红色线条圈住的query,用has就没有那条

3年前 评论

你这不是应该遍历书然后关联用户名吗

3年前 评论

file

file 因为要分页,所以把三层的数组变成两层了?

3年前 评论

$books = Book::with('user')->offset(0)->limit(10)->get();

3年前 评论
lddtime 2年前
donggan (楼主) 3年前
马九南 (作者) 3年前
sreio

@donggan

->with(["user:id,name"])

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!