【问题标题】:Route [ ] not defined路线 [ ] 未定义
【发布时间】:2022-01-15 12:11:46
【问题描述】:

我希望能够删除价格,从而在单击删除按钮时出现一个模式,然后显示是或否删除按钮。这是包含删除按钮的视图中的 ajax 函数

function removeogFuelPriceModel(id)
 {
$.ajax({
    url: "{{route('industryfuelprice.edit.modal')}}",
    type: 'post',
    'headers': {
        'X-CSRF-TOKEN': '{{ csrf_token() }}'
    },
    data: {
        'id': id,
    },
    success: function (response) {
        $("#showEditInventoryModal").html(response);
        $("#showMsgModal").modal('show');
    },
    error: function (e) {
        console.log('error', e);
    }
  });
}

这是模态框内的一个 div,其中包含重定向到删除 ajax 函数的 id

<div class="row"
                    style="width: 100%; padding-left: 0px; padding-right: 0px;">
                    <div class="col col-m-12 text-center">
                        <button type="button"
                        class="btn bg-primary primary-button"
                        **onclick="deleteData({{$oilgas->id}})"**
                        data-dismiss="modal">Yes</button>
                        <button type="button"
                        class="btn btn-danger primary-button"
                        data-dismiss="modal">No</button>
                    </div>
                </div>

这里是modal中的ajax函数

   function deleteData(id) {

        const url = "{{ route('industryoilgas.destroyFuelprice', ['model_id' => "MODEL_ID"]) }}".replace("MODEL_ID", id);

        $.ajax({
            url: url,
            method: "POST",
            enctype: 'multipart/form-data',
            success: function (response) {  
                $("#showMsgModal").modal('hide')
                $("#showEditInventoryModal").html(response)
                $('#showMsgModal').modal('show');
                $("#addFuelPrice").attr("disabled", false);
                $("#addFuelPrice").css({"cursor":"pointer;"});
                
                loadFuelPrice();
            }, error: function (e) {
                console.log(e.message)

            }
        });
    }

这是我的路线

Route::post('show-industry-fuel-price-edit-modal','IndustryOilGasController@showEditModalFuelPrice')->name('industryfuelprice.edit.modal');

  Route::post('delete-fuel-price/{id}', 'IndustryOilGasController@destroyFuelprice')->name('industryoilgas.destroyFuelprice');

我不明白为什么会出现这个错误

【问题讨论】:

  • 你能通过console.log(url)分享url里面的内容吗?

标签: laravel routes


【解决方案1】:

确保您在刀片组件中定义了removeogFuelPriceModel()deleteData(),因为在预定义的 php 文件之外无法解析 Laravel 辅助方法。在这种情况下,您主要是在 JS 文件中定义那些无法正常工作的方法。要解决此问题,您可以将这些方法注入刀片组件内的脚本布局中。我希望这可以帮助你!

【讨论】:

  • @Arabat 我还没有理解..请用更简单的术语解释一下
  • 我说过任何 laravel 辅助方法,例如 route()auth() 等,都不会在您可能已定义方法的 javascript 文件中解析。 removeogFuelPriceModel()deleteData() 应该在刀片文件中定义。您可以通过以下链接link在js文件中使用route(),参考tightenco/ziggy
  • 如何在视图中定义它们?
  • "这是视图中的 ajax 函数" 听起来他们已经在视图中声明了
  • 您可以在刀片文件末尾的script 分区中定义它们,如下所示:&lt;script&gt; function removeogFuelPriceModel(id) { $.ajax({ url: "{{route('industryfuelprice.edit.modal')}}", type: 'post', 'headers': { 'X-CSRF-TOKEN': '{{ csrf_token() }}' }, data: { 'id': id, }, success: function (response) { $("#showEditInventoryModal").html(response); $("#showMsgModal").modal('show'); }, error: function (e) { console.log('error', e); } }); } &lt;/script&gt; 第二个也是一样
猜你喜欢
  • 1970-01-01
  • 2019-11-30
  • 2016-08-26
  • 2021-11-12
  • 2022-01-16
  • 2018-10-15
  • 2020-09-13
  • 2017-12-25
  • 2023-03-29
相关资源
最近更新 更多