У меня две таблицы книг и издательств. publisher_id - это первичный ключ в таблице издателей и внешний ключ в таблице книг. В index.blade. php книг я хочу создать ссылку для сортировки столбцов книжного индекса. вот моя часть index.blade. php просмотр, где я создаю ссылки.
<table class="table">
<tr>
<th><a href="{{ route('books-index',['sort' => 'name','direction' => 'asc']) }}">Name</a></th>
<th><a href="{{ route('books-index',['sort' => 'published_date','direction' => 'asc']) }}">Published Date</a></th>
<th><a href="{{ route('books-index',['sort' => 'publisher_name','direction' => 'asc']) }}">Publisher Name</a></th>
<th>Category</th>
<th>Author</th>
А в BooksController. php, у меня есть метод индекса, в котором часть сортировки приведена ниже
public function index(Request $request) {
$input = $request->all();
$sort = 'created_at';
$direction = 'desc';
if(isset($input['sort'])){
$sort = $input['sort'];
}
if(isset($input['direction'])){
$direction = $input['direction'];
}
$books = Book::join('publishers','publishers.id','books.publisher_id')
->orderby($sort,$direction)->select('books.*')->paginate(5);
Ниже приводится мой индекс просмотра книг
Но когда я нажимаю на имя издателя для сортировки, это выдает мне такую ошибку.
QueryException in Connection.php line 770:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'publisher_name' in 'order clause' (SQL: select `books`.* from `books` inner join `publishers` on `publishers`.`id` = `books`.`publisher_id` order by `publisher_name` asc limit 5 offset 0)
Так, что я могу сделать, чтобы решить это?