【问题标题】:Laravel send data such as 1-2-3 by ajax and get Missing argument errorLaravel通过ajax发送1-2-3等数据,得到Missing argument错误
【发布时间】:2023-03-25 22:17:01
【问题描述】:

我尝试使用下面的 ajax 将诸如 1-2-3-4-5 之类的数据发送到控制器操作,但我收到错误:

阿贾克斯:

$.ajax({
    type: "GET",
    url: " {{ url('changeMenuItemOrders') }}",
    data: {orders: "1-2-3"},
    success: function (data) {
    }
});

路线:

Route::get('changeMenuItemOrders','SystemController@changeMenuItemOrders');

changeMenuItemOrders 操作:

public function changeMenuItemOrders($orders)
{
    dd($orders);
}

萤火虫:

http://localhost/sample/public/changeMenuItemOrders?orders=1-2-3 500 Internal Server Error

Laravel 错误:

ErrorException in SystemController.php line 114: Missing argument 1 for App\Http\Controllers\SystemController::changeMenuItemOrders()

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    试试

    public function changeMenuItemOrders()
    {
        $orders= Input::get('orders');
        dd($orders);
    }
    

    changeMenuItemOrders action:

    【讨论】:

      【解决方案2】:

      您面临的问题是查询字符串参数与路由参数。现在,你有:

      public function changeMenuItemOrders($orders)
      

      寻找路由参数$orders。为了完成这项工作,您需要以下路线:

      Route::get('changeMenuItemOrders/{orders}','SystemController@changeMenuItemOrders');
      

      您可以通过导航到 (GET) 来访问此功能:

      http://localhost/sample/public/changeMenuItemOrders/1-2-3
      

      由于您是通过 ajax 请求创建查询字符串,因此您的函数中不应包含 $orders,而是应该通过 GET 数组访问订单,使用

      $orders = Input::get('orders');
      

      希望这有助于解决问题。另外,作为旁注,如果您要传递多个订单(即 1、2 和 3),请考虑发布 orders[] (orders[0] 1, orders[1] 2, orders[2] 3) 而不是必须拆分的字符串 ("1-2-3")后端。

      【讨论】:

        猜你喜欢
        • 2020-11-25
        • 1970-01-01
        • 2021-09-24
        • 2018-12-13
        • 2020-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多