Как сделать запрос на выборку данных с нескольких столбцов одной таблицы из коллекции Laravel

Имеется модель Author и таблица authors с двумя полями author_surname и author_name. При поиске по каталогу авторов нужно сделать выборку по фамилии или по имени автора в таблице. Вопрос такой с помощью какого метода в коллекции можно сделать выборку типа SELECT * FROM authors WHERE author_surname=$author_surname OR author_name=$author_name В query builder можно использовать два метода DB::select('author')->where('author_surname', '=', $author_surname)->orWhere('author_name', '=', $author_name). Но как это сделать используя коллекции полученную через модель Author ведь там есть только метод where().


AuthorController.php 

public function index(Request $request)
{
    if (!empty($request->sort)) {
        $authors = Author::all()->sortBy('author_surname');
    } elseif (!empty($request->search)) {
        $authors = Author::all()->where('author_surname', $request->search);
    } else {
        $authors = Author::paginate(15);
    }
    return view('authors.index', compact('authors'));
}

В файле authors.index пагинация, сортировка по фамилии автора и должен присутствовать поиск по фамилии или имени автора.


Ответы (1 шт):

Автор решения: Nick Deniel

Метод orWhere() был правильным решением, стоило только убрать метод all() и последним методом вызвать get()

$authors = Author::where('author_surname', $request->search)->
        orWhere('author_name', $request->search)->get();
→ Ссылка