如何在 Javascript 中从 Laravel 路由生成 URL

问题描述 投票:0回答:2

我需要传递一个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;   
}

我该怎么做?

php ajax laravel
2个回答
2
投票

如果您想使用路线。

var status = this.value;    
var url ="{{route('permissao.status', ":status")}}";
url = url.replace(":status", status);

在ajax调用中使用变量url。


1
投票

您无法将 JavaScript 传递给 Laravel 路由方法。

应该是

  url: "permissao/status/"+status,

如果您遇到基本网址问题,那么您可以执行以下操作

var url="{{url('/')}}/";

然后在ajax中

 url: url+"permissao/status/"+status,
© www.soinside.com 2019 - 2024. All rights reserved.