错误缺少[Route:city] [URI:daftar / city / {id}]的必需参数

时间:2019-12-04 06:13:46

标签: php jquery ajax laravel laravel-5

我想使用ajax将数据发送到控制器,但是出现错误

Missing required parameters for `[Route: city] [URI: daftar / city / {id}].

这是我的Ajax代码

 $(".province").on("change",function(){
      var id = this.value;
      console.log(id);
      $.ajax({
        type: "get",
        url: "{{ route('city') }}"+'/'+id  ,
        dataType: "json",
        success: function(data){
            console.log('');
        },
        });
});

这是我的路线

Route::group(['prefix' => 'vendor'], function () {
 Route::get('/city/{id}', 'Vendor\VendorController@getCity')->name('city');
});

4 个答案:

答案 0 :(得分:1)

尝试一下。

Route::group(['prefix' => 'vendor','as'=>'vendor.'], function () {
Route::get('/city/{id}',['as' => 'activebranch', 'uses' => 'Vendor\VendorController@getCity']);
});

AjAX。

 $(".province").on("change",function(){
      var id = this.value;
      console.log(id);
      $.ajax({
        type: "get",
        url: "{{ route('vendor.activebranch') }}"+'/'+id  ,
        dataType: "json",
        success: function(data){
            console.log('');
        },
        });
});

答案 1 :(得分:0)

您正在使用

{{ route('city') }}

没有任何参数,因此您需要使用以下代码更改路线:

Route::group(['prefix' => 'vendor'], function () {
 Route::get('/city/{id?}', 'Vendor\VendorController@getCity')->name('city');
});

答案 2 :(得分:0)

您不能这样写。 {{ route('city') }}正在回显具有参数的路由。但此处缺少该参数。您稍后将使用js添加该参数,但由于php回显路由时会丢失该参数而无法使用。你可以这样做

$(".province").on("change",function(){
    var id = this.value;
    var url = '{{ route("city", ":id") }}';
    url = url.replace(':id', id);
    $.ajax({
        type: "get",
        url: url,
        dataType: "json",
        success: function(data){
            console.log('');
        },
    });
});

答案 3 :(得分:0)

没有参数,就不能使用route('city')

如果您希望没有laravel帮助器的简单方法,可以尝试这样更改它:

$(".province").on("change",function(){
      var id = this.value;
      console.log(id);
      $.ajax({
        type: "get",
        url: "daftar/city/" + id  ,
        dataType: "json",
        success: function(data){
            console.log('');
        },
        });
});