Laravel 5.7具有空关系的联接查询
我有一个图书用户(一个)和一个图书用户(多个)的关系。 一种图书模型,“借阅用户id”(如果空表示图书可用) 我试图将其设置为下面的查询,但此查询不显示可用图书,只显示借阅图书。如何为所有图书设置john查询Laravel 5.7具有空关系的联接查询,laravel,laravel-5,Laravel,Laravel 5,我有一个图书用户(一个)和一个图书用户(多个)的关系。 一种图书模型,“借阅用户id”(如果空表示图书可用) 我试图将其设置为下面的查询,但此查询不显示可用图书,只显示借阅图书。如何为所有图书设置john查询 $query = Book::select( 'books.*') ->john( 'bookUsers' , 'bookUsers.id' , '=', 'books.borrowing_user_id' ); /** query result
$query = Book::select( 'books.*')
->john( 'bookUsers' , 'bookUsers.id' , '=', 'books.borrowing_user_id' );
/**
query result
books.book_name | books.borrowing_user_id | bookUsers.name
BookA | 1 | Tom
BookC | 5 | Peter
*/
我想要的结果如下
books.book_name | books.borrowing_user_id | bookUsers.name
BookA | 1 | Tom
BookB | Null | Null
BookC | 5 | Peter
图书用户模型
class BookUser extends Model
{
use SoftDeletes;
protected $fillable = [
'name'
,'created_at'
,'updated_at'
,'deleted_at'
];
}
public function books()
{
return $this->hasMany(Book::class, 'borrowing_user_id', 'id');
}
图书模型
class Book extends Model
{
use SoftDeletes;
protected $fillable = [
'borrowing_user_id' //nullable
,'book_name'
,'created_at'
,'updated_at'
,'deleted_at'
];
}
public function borrowing_user()
{
return $this->belongsTo(User::class, 'borrowing_user_id', 'id');
}
我想你们有相同的型号吗
$query = Book::with(['borrowing_user'=>function($query){
$query->select('id','what_ever your next query);
}])->get();
哦,我自己解决这个问题 使用leftJoin
$query = Book::select( 'books.*')
->leftJoin( 'bookUsers' , 'bookUsers.id' , '=', 'books.borrowing_user_id' );
你确定是约翰不是加入吗?