我相信我已经很接近了,但是在如何将给定的ID从我的show方法传递到关联的显示数据中,以便数据可以使用关联的数据来显示该ID时,我感到非常困难。
当我硬编码ID或完全删除where语句时,代码工作。我的目标是使datatable清单相关项仅用于给定的集合。
路线:
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在刀片中工作得很好--我想我只是在控制器中缺少了一些东西来接收id,并最终在$data上创建所需的查询,以便返回到datatable。
发布于 2019-07-03 01:47:55
是。在显示方法中缺少Request $request,以便从路由中检索$id。
use Illuminate\Http\Request;
public function showdata(Request $request)
{
$collection_id = $request->id;
$data = Item::with('collection', 'type')->where('collection_id', $id);
return Datatables::of($data)->make(true);
}您还可以直接从控制器检索id,而不是使用$request。
public function showdata($id)
{
$data = Item::with('collection', 'type')->where('collection_id', $id);
return Datatables::of($data)->make(true);
}发布于 2019-07-03 01:57:20
您只需在显示数据中有一个参数,该参数用于从URL传递的id
public function showdata($id)
{
$data = Item::with('collection', 'type')->where('collection_id', $id);
return Datatables::of($data)->make(true);
}https://stackoverflow.com/questions/56861822
复制相似问题