我尝试使用下面的ajax将数据(如1-2-3-4-5
)发送到控制器操作,但我得到了错误:
Ajax:
$.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);
}
Firebug:
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()
尝试
public function changeMenuItemOrders()
{
$orders= Input::get('orders');
dd($orders);
}
在changeMenuItemOrders action:
中
您面临的问题是查询字符串参数与路由参数。现在,你有:
public function changeMenuItemOrders($orders)
查找路由参数CCD_ 4。为了实现这一点,您需要以下路线:
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"
)。