如何解决如何在LaravelDataTables中使用参数'id'实现DataTable?
我正在尝试将刀片服务器文件中的ID值传递给ajax,这样它将路由数据表并在ProductActivities
中调用ProductController
函数。
这是我在show()
中的ProductController
函数的代码段:
public function show($id)
{
$product = Product::find($id);
$data = Product::with(['user_modify'],'id',$product->user_modified)
->where('product_id','=',$id)->first();
$category = Category::select('category_name')
->where('category_id',$data->product_type)
->pluck('category_name')
->first();
if($data->count() > 0){
return view('product.view',compact('data','category'));
}else{
Toastr::error('Product cannot be retrieved.','Error');
return view('product.index');
}
}
这是view.blade.PHP
文件中用于DataTable初始化的JavaScript的代码段:
@push('js')
<script>
$(function () {
$("#prod_log_tbl").DataTable({
responsive:true,stateSave:false,scrollY:true,autoWidth: false,ajax: {{ url('product/activities',[Request::segment(3)]) }},order:[0,'desc'],searchable: false,sortable:false,fixedColumns: true
});
});
</script>
@endpush
Route::get('product/activities/{id}','Master\ProductController@ProductActivities')->name('product/activities/{id}');
{p> ProductActivities()
中ProductController
函数的代码段:
public function ProductActivities($id)
{
$dataAct = Activity::all()->where('subject_id',$id);
return Datatables::of($dataAct)->make(true);
}
这是我当前进度的结果:
在结果的屏幕截图中,ajax显示的URL在ID之后还有其他值,我认为这是导致DataTable错误的原因。
我不知道我怎么得到这个错误? 如何实现将ID从视图刀片文件通过DataTable
ajax传递到ProductController
?
P.S。我为Laravel使用Yajra / DataTable包。
解决方法
我认为您在Ajax网址中不需要php echo,route helper语法是
{{ route('routeName',['id' => 1]) }}
您需要路由名称和参数,另一种方式是使用url helper
{{ url('product/activities/',[Request::segment(3)]) }}
此外,如果要使用模型,请参考documentation,using first()
仅会给您一个对象,您需要一个集合,最好考虑使用get()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。