从请求处理程序,我将一个参数传递给请求视图:
public function sol_solicitante(Request $request, $param){
return view('solicitante.solicitudes', compact('param'));
}
控制器调用的视图是:
@extends('layouts.app')
@section('title','Buzón Solicitudes')
@section('css')
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.css">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.22/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.2.6/css/responsive.bootstrap4.min.css">
@endsection
@section('content')
<div class="container mt-4">
<div>
<h2>Buzón De Solicitudes</h2>
</div>
<div class="card">
<div class="card-body">
<!--
<a href="crear">
<button type="button" class="btn btn-success float-right">Crear Solicitud</button>
</a>
</h2>
-->
<table class="table table-hover" id="buzonsolicitudes">
<thead>
<tr>
<th scope="col">Id</th>
<th scope="col">Nombre</th>
<th scope="col">Estado</th>
<th scope="col"> </th>
</tr>
</thead>
</table>
</div>
</div>
</div>
@endsection
@section('js')
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.22/js/dataTables.bootstrap4.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.2.6/js/dataTables.responsive.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.2.6/js/responsive.bootstrap4.min.js"></script>
<script>
$('#buzonsolicitudes').DataTable({
"ajax": "{{ route('datatable.sol_solicitante',['param' => '1'])}}",
"columns":[
{data:'id'},
{data:'nombre'},
{data:'estadologico'},
{data:'btn'}
],
responsive: true,
autoWidth: false,
"language": {
"lengthMenu": "Mostrar " +
`<select class="custom-select" custom-select-sm form-control form-control-sm>
<option value='10'>10</option>
<option value='25'>25</option>
<option value='50'>50</option>
<option value='100'>100</option>
<option value='-1'>Todos</option>
</select>` +
" registros por página",
"zeroRecords": "Nada encontrado - disculpa",
"info": "Mostrando página _PAGE_ de _PAGES_",
"infoEmpty": "Ningún registro disponible",
"infoFiltered": "(filtrado de _MAX_ registros totales)",
'search':'Buscar',
'paginate':{
'next':'siguiente',
'previous':'anterior'
}
}
});
</script>
@endsection
我不知道如何在视图中访问控制器发送的参数,因为我必须将其作为参数传递给Ajax调用;类似于:
<script>
var p= param
$('#buzonsolicitudes').DataTable({
"ajax": "{{ route('datatable.sol_solicitante',['param' => p])}}",
我放的这个不起作用,检查我没有发现它应该是什么样子。
我感谢大家的帮助,谢谢。
php代码在服务器上处理。刀片在页面加载之前编译所有变量。看起来你已经在使用路由助手了。只需像在其他地方那样将变量传递给辅助对象。
"ajax": "{{ route('datatable.sol_solicitante', ['param' => $param]) }}"
这将生成您在web.php文件中定义的路线,如mysite.com/datatable/sol_solicitante/param_value
您应该在blade文件中创建一个脚本。在该脚本中,您添加init一些变量,这些变量的值来自控制器
将其添加到您的脚本中
var data ={!! $data->id !!}; //data->id is variable send by controller
您可以在脚本中直接访问此变量
试试这个希望它能起作用