我在乡村图书馆创建了一个图书馆管理项目。
我有三个桌子。
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);
如果要获得一本副本,我想借出清除的书或不清除的书。
答案 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及更高版本上可用。