Laravel枢纽分析表记录检查并同时检入主表

时间:2019-03-28 11:31:10

标签: laravel eloquent relationship

我在乡村图书馆创建了一个图书馆管理项目。

我有三个桌子。

books
---------
id
title
copies

borrowers
---------
id
name

borrows
---------
id
cleared
book_id
borrower_id

我加入了借款人表和书本表,与借款人表有一种关系。

我的问题是,是否有2本可用。 某个用户借用的1个库中可用的另一份副本。 我正在尝试获取库中是否有一个副本,然后显示给借阅视图。

这是我的代码。

    $books = Book::doesnthave('borrows', 'or', function($query) {
        $query->where('cleared', '=', '0');
       })->get();
    return AllBookResource::collection($books);

如果要获得一本副本,我想借出清除的书或不清除的书。

2 个答案:

答案 0 :(得分:0)

我将改变您处理副本的方式。

解决方案

为您拥有的副本制作另一个表格,这样,您可以更轻松地进行更改,例如添加书籍的版本,印刷的年份,并且更容易查看它是否有印刷版本。副本可供借用。

答案 1 :(得分:0)

您可以检查尚未清除的借阅图书的数量,仅返回副本价值高于其的图书。

$books = Book::withCount('borrows', 'or', function($query) {
    $query->where('cleared', '=', '0');
   })
     ->whereColumn('borrows_count', '<', 'books.copies')
     ->get();
return AllBookResource::collection($books);

请注意,whereColumn函数仅在laravel 5及更高版本上可用。