提交表单时出现404错误

时间:2017-03-30 10:13:38

标签: forms laravel http-status-code-404

路线:

Route::post('orders/edit-order-content/{$id}', 'Admin\OrderController@addProduct')->name('addProductToOrder');
Route::resource('/orders', 'Admin\OrderController');

控制器:

public function addProduct($id){
  dd($id);
}

查看:

{!! Form::open(['route' =>['addProductToOrder',$order->id], 'id'=>'editOrderContent']) !!}
{!! Form::label('product_id','Product ID') !!}<br>
{!! Form::input('text','product_id') !!}<br>
{!! Form::label('qty','Quantity') !!}<br>
{!! Form::input('number','qty',1,['min'=>'1'])!!}<br>
{!! Form::submit('Add product',['class'=>'btn btn-info ','id'=>'addProduct']) !!}
{!! Form::close() !!}

为什么我会收到404页面?我尝试用新的控制器来做,但也有404错误......

3 个答案:

答案 0 :(得分:0)

因此,解决方案是,您不能在路线中使用$符号作为变量:

替换

Route::post('orders/edit-order-content/{$id}', 'Admin\OrderController@addProduct')->name('addProductToOrder‌​'); 

使用

 Route::post('orders/edit-order-content/{id}', 'Admin\OrderController@addProduct')->name('addProductToOrder‌​');

答案 1 :(得分:0)

您无法在某些版本上链接name(),我建议您明确定义它。

Route::post('orders/edit-order-content/{$id}', [
    'uses'  =>'Admin\OrderController@addProduct',
    'as'=>'addProductToOrder'
]);

另外,如另一个答案所述,请删除$

答案 2 :(得分:0)

我认为你只是使用get方法而不是post发送表单。

{!! Form::open(['method'=>'post', 'route' =>['addProductToOrder',$order->id], 'id'=>'editOrderContent']) !!}