如何解决如何将参数从数据表发送到控制器 Laravel
我的刀片视图 Laravel 中有一个数据表,我用户单击蓝色按钮它将打开新页面并显示与之前单击的 user_id 相同的所有任务
我正在尝试将 user_id
值传递给控制器。我已经这样做了以下代码
我的路线
Route::get('/detail/{user_id}',[PageController::class,'UserTask'])->name('user.task');
$(function() {
var user_id = $(this).data('user_id'); //have different value from each rows
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('Meta[name="csrf-token"]').attr('content')
}
});
var table = $('.data-table').DataTable({
processing: true,serverSide: true,ajax: "{{ route('user.task') }}" + '/' + user_id,columns: [{
data: 'DT_RowIndex',name: 'DT_RowIndex',orderable: false,searchable: false,},{
data: 'title',name: 'title',{
data: 'content',name: 'content',visible: false,{
data: 'progress',name: 'progress'
},{
data: 'status',name: 'status'
},{
data: 'target_selesai',name: 'target_selesai'
},{
data: 'action',name: 'action',searchable: false
},]
});
});
我的控制器
public function UserTask($user_id)
{
$data = Post::where('user_id',$user_id)->latest()->get();
return Datatables::of($data)
->addindexColumn()
->addColumn('action',function ($row) {
$id = $row->id;
// $this->actionButton($row->id);
$btn = ' <a href="javascript:void(0)" data-toggle="tooltip" data-id="' . $id . '" data-original-title="Detail" class="btn btn-success mr-1 btn-sm detailProduct"><span class="fas fa-info"></span></a>';
return $btn;
})->addColumn('target_selesai',function ($row) {
//...
})
->addColumn('progress',function ($row) {
//...
})->addColumn('status',function ($row) {
//...
})
->rawColumns(['action','progress','status'])
->make(true);
return view('detail');
}
但是,它会返回错误 Missing required parameter for [Route: user.task]
如果我从路由、ajax 路由中删除所有参数 {user_id},并更改
public function UserTask($user_id)
{
$data = Post::where('user_id',$user_id)->latest()->get();
进入
public function UserTask()
{
$data = Post::where('user_id',1000000002)->latest()->get();
程序将完美运行,如何将 user_id
值从数据表传递到控制器?
解决方法
当您尝试在客户端更改路由时,您不能使用 "{{ route('user.task') }}" + '/' + user_id
,因为 route()
函数会在服务器中呈现路由。使用 ajax 作为数据发送 user_id
并使用 request()->get('user_id')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。