我需要传递一个ajax变量作为路由参数,但它显示错误。
这是错误:
Too few arguments to function App\Http\Controllers\PermissaoController::status(), 0 passed and exactly 1 expected
这是脚本:
<script type="text/javascript">
$(document).ready(function() {
$('#status_id').change(function(){
var usuario = (location.pathname).split('/');
var status = this.value;
$.ajax({
type: 'get',
url: "{{route('permissao.status', "+status+")}}",
data: {status: status, usuario: usuario[2]},
dataType:"json",
success:function(html){
$('#projeto_id').find('option').remove();
$('#projeto_id').append('<option value="">Selecione...</option>');
for(var i = 0; i< html.length;i++){
$('#projeto_id').append('<option value="'+html[i]['id']+'">'+html[i]['titulo']+ '-' + html[i]['codigo']+ '</option>');
}
}
})
})
})
这是我在控制器中的功能:
public function status($sd) {
$usuario = Usuario::where('id', $sd)->get();
return $usuario;
}
我该怎么做?
如果您想使用路线。
var status = this.value;
var url ="{{route('permissao.status', ":status")}}";
url = url.replace(":status", status);
在ajax调用中使用变量url。
您无法将 JavaScript 传递给 Laravel 路由方法。
应该是
url: "permissao/status/"+status,
如果您遇到基本网址问题,那么您可以执行以下操作
var url="{{url('/')}}/";
然后在ajax中
url: url+"permissao/status/"+status,