数据库一对多关联,如何得到一对应表的字段值
如有两张表,
一张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,如果在关联查询时候获得对应一里面的字段值呢?
$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; }} 因为我还想做分页,所以最终数组是两层的
用with时候就多红色线条圈住的query,用has就没有那条
你这不是应该遍历书然后关联用户名吗
$books = Book::with('user')->offset(0)->limit(10)->get();
@donggan
->with(["user:id,name"])