Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将带有{id}的路由传递到Datatable blade。查看特定用户详细信息的步骤_Php_Laravel_Datatables - Fatal编程技术网

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>';
        }
}