Я думаю, что я близок, но изо всех сил пытаюсь передать заданный идентификатор из моего метода show в связанный метод showdata, чтобы таблицы данных могли манифестироваться со связанными данными только для этого идентификатора.
Код работает, когда я жестко кодирую идентификатор или просто удаляю инструкцию where. Моя цель - иметь связанные с данными элементы, связанные с манифестом, только для данной коллекции.
Маршруты:
Route::resource('collections', 'CollectionsController');
Route::get('collectionsdata/{id}', 'CollectionsController@showdata');
Show.blade.php:
var id = {{ $collection->id }}
$(function () {...
$('#item-table').DataTable({
//processing: true,
serverSide: true,
ajax: "/collectionsdata/"+ id,
columns: [
//{data: 'id', name: 'id'},
{data: 'id', name: 'id'},
{data: 'collection_id', name: 'collection_id'},
{data: 'type_id', name: 'type_id'},
{data: 'collection.title', name: 'collection.title'},
{data: 'type.name', name: 'type.name'},
{data: 'updated_at', name: 'updated_at'},
]
});
Контроллер коллекций:
public function show(Collection $collection)
{
$collection->load('items.type')->get();
//dd($collection);
return view ('collections.show', compact('collection'));
}
public function showdata()
{
$data = Item::with('collection', 'type')->where('collection_id', $id);
return Datatables::of($data)->make(true);
}
ШОУ само по себе функционирует хорошо, var id хорошо работает в блейде - я думаю, что мне просто не хватает чего-то в контроллере, чтобы получить идентификатор и в конечном итоге создать требуемый запрос на $ data для возврата к таблице данных.