Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.7具有空关系的联接查询_Laravel_Laravel 5 - Fatal编程技术网

Laravel 5.7具有空关系的联接查询

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

我有一个图书用户(一个)和一个图书用户(多个)的关系。 一种图书模型,“借阅用户id”(如果空表示图书可用)

我试图将其设置为下面的查询,但此查询不显示可用图书,只显示借阅图书。如何为所有图书设置john查询

    $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' );

你确定是约翰不是加入吗?