Php 如何将带有{id}的路由传递到Datatable blade。查看特定用户详细信息的步骤
这是我的路线Php 如何将带有{id}的路由传递到Datatable blade。查看特定用户详细信息的步骤,php,laravel,datatables,Php,Laravel,Datatables,这是我的路线 Route::get('/view/{id}', [ 'uses' => 'ClientController@view', 'as' => 'view' ]); 这是我的客户控制器 public function view($id){ $client = Client::where('id',$id)->first(); return view('view',compact('client')); } 这是我的数据表 @ex
Route::get('/view/{id}', [
'uses' => 'ClientController@view',
'as' => 'view'
]);
这是我的客户控制器
public function view($id){
$client = Client::where('id',$id)->first();
return view('view',compact('client'));
}
这是我的数据表
@extends('layouts.datatables_master')
@section('content')
<table class="table table-bordered" id="clients-table">
<thead>
<tr>
<th>ID</th>
<th>Company Name</th>
<th>Name</th>
<th>Surname</th>
<th>ID Number</th>
<th>Created</th>
<th>Last Updated</th>
<th>Actions</th>
</tr>
</thead>
</table>
@stop
@push('scripts')
<script>
$(function() {
$('#clients-table').DataTable({
processing: true,
serverSide: true,
ajax: '{!! route('business.list') !!}',
columns: [
{ data: 'id', name: 'id' },
{ data: 'companyname', name: 'companyname' },
{ data: 'name', name: 'name' },
{ data: 'surname', name: 'surname' },
{ data: 'idnumber', name: 'idnumber' },
{ data: 'created_at', name: 'created_at' },
{ data: 'updated_at', name: 'updated_at' },
{ data: "actions",
"render": function(data, type, row) {
return '<a href="{{route('view',1)}}" class="btn btn-xs btn-info"><i class="fa fa-search" title="View"></i></a> <a href="#" class="btn btn-xs btn-primary"><i class="fa fa-pencil" data-toggle="tooltip" data-placement="top" title="Edit"></i></a> <a href="#" class="btn btn-xs btn-danger"><i class="fa fa-trash" data-toggle="tooltip" data-placement="top" title="Delete"></i></a>'
;}
}
]
});
});
</script>
@endpush
@extends('layouts.datatables\u master')
@节(“内容”)
身份证件
公司名称
名称
姓
身份证号码
创建
最后更新
行动
@停止
@推送('脚本')
$(函数(){
$(“#客户表”).DataTable({
处理:对,
服务器端:是的,
ajax:“{!!路由('business.list')!!}”,
栏目:[
{数据:'id',名称:'id'},
{数据:'companyname',名称:'companyname'},
{data:'name',name:'name'},
{数据:'姓',名称:'姓'},
{数据:'idnumber',名称:'idnumber'},
{data:'created_at',name:'created_at'},
{数据:'updated_at',名称:'updated_at'},
{数据:“行动”,
“渲染”:函数(数据、类型、行){
返回“”
;}
}
]
});
});
@端推
问题
我的主要问题是为所有用户传递一个ID。如果您在我的数据表上检查我的
render
函数,我会说返回路线(视图,1)
它在哪里1。我想传递$id
,但它说的是未定义的变量。请提供帮助。您可以从控制器返回生成的路由链接,如:
return datatables(Client::query())
->addColumn('actions', function ($client) {
return [
'edit_link' => route('view', [$id => $client->id]),
];
})->toJson();
并在视图中渲染为
{
data: "actions",
render: function(data, type, row) {
return
'<a href="' + data.edit_link + '" class="btn btn-xs btn-info">' +
'<i class="fa fa-search" title="View"></i></a>' +
'<a href="#" class="btn btn-xs btn-primary">' +
'<i class="fa fa-pencil" data-toggle="tooltip" data-placement="top" title="Edit"></i>' +
'</a>' +
'<a href="#" class="btn btn-xs btn-danger">' +
'<i class="fa fa-trash" data-toggle="tooltip" data-placement="top" title="Delete"></i>' +
'</a>';
}
}
{
数据:“行动”,
呈现:函数(数据、类型、行){
返回
'' +
'' +
'';
}
}
像这样试试
return '<a href= "view/' + 1 +'" class="btn btn-xs btn-info"><i class="fa fa-search" title="View"></i></a>
return'
将客户端变量传递给blade
{{ route('view',$client->id); }}
数据的值应为“id”,并使用url()而不是route():
{数据:“id”,
“渲染”:函数(数据、类型、行){
返回“”;
}
}
您可以像/view/1那样编写。它会解决你的问题谢谢你,伙计。我还找到了另一种更简单的方法。我说:回来。所以我从row参数中提取了ID。这里的主要困惑是混合使用php和JS。因为当你说花括号{{}}时,控制台需要PHP代码。这就是为什么路由不起作用,所以我将{route('view',1)}}替换为“view/'+row.id+'。它就像一个符咒。再次感谢大家抽出时间。有不止一种方法可以做到这一点!很高兴,你找到了解决办法!非常感谢您。您的方法表示未定义变量客户端
{ data: "id",
"render": function(data, type, row) {
return '<a href="{{ url("view") }}/"'+ data +'>View</a>';
}
}