2017-03-21 13 views
3

は私のルートです:MethodNotAllowedHttpException

ここ
Route::get('orders', [ 
    'uses' => '[email protected]', 
    'as' => 'order.show' 
]); 

コントローラ:

 public function postOrder() 
    { 
     $this->orderForm->validate(Input::all()); 
     $order = $this->orders->getNew([ 
      'link'  => Input::post('link'), 
      'size'  => Input::post('size'), 
      'color'  => Input::post('color') 
     ]); 
     $this->orders->save($order); 
     return Redirect::back()->withMessage('Order has been updated'); 
    } 

はこちらブレード:

{{ Form::open() }} 
     <div class="box-body"> 
      <div class="row"> 
       <div class="col-lg-6"> 
        <div class="form-group"> 

         {{ Form::label('title', 'Product:') }} 
         {{ Form::text('title', $order->title, ['class' => 'form-control', ]) }} 
        </div> 
       </div> 
       <div class="col-lg-6"> 
        <div class="form-group"> 
         {{ Form::label('link', 'Link:') }} 
         {{ Form::text('link', $order->link, ['class' => 'form-control']) }} 
        </div> 
       </div> 
      </div> 
      <div class="row"> 
       <div class="col-lg-6"> 
        <div class="form-group"> 
         {{ Form::label('size', 'Size:') }} 
         {{ Form::text('size', $order->size, ['class' => 'form-control']) }} 
        </div> 
       </div> 
       <div class="col-lg-6"> 

      </div> 
     </div> 
     <div class="box-footer"> 
      {{ Form::submit('Save', ['class' => 'btn btn-primary']) }} 
     </div> 
     {{ Form::close() }} 

だから、私は "MethodNotAllowedHttpException"というエラーを受け取った順番を更新しようとするたびに、私はたくさんのメソッドを試しましたが、私は失われています。私はまだPHPの初心者ですし、この問題は私を狂ってしまうので、助けてくれれば嬉しいです。

おかげ

***私はコード

答えて

0

。そのためにはHTTP POST requestが必要です。 /ordersルートにGETリクエストを割り当てます。あなたがあなたのコードを変更する必要が

Route::post('orders', [ 
    'uses' => '[email protected]', 
    'as' => 'order.show' 
]); 

はまた、あなたはCSRF Tokenを追加する必要があり、これは(オープンとクローズフォーム内)あなたのブレードで{!! csrf_field() !!}を追加することによって行うことができます。

{{ Form::open() }} 
    {!! csrf_field() !!} 
    <div class="box-body"> 
     <div class="row"> 
      <div class="col-lg-6"> 
       <div class="form-group"> 

        {{ Form::label('title', 'Product:') }} 
        {{ Form::text('title', $order->title, ['class' => 'form-control', ]) }} 
       </div> 
      </div> 
      <div class="col-lg-6"> 
       <div class="form-group"> 
        {{ Form::label('link', 'Link:') }} 
        {{ Form::text('link', $order->link, ['class' => 'form-control']) }} 
       </div> 
      </div> 
     </div> 
     <div class="row"> 
      <div class="col-lg-6"> 
       <div class="form-group"> 
        {{ Form::label('size', 'Size:') }} 
        {{ Form::text('size', $order->size, ['class' => 'form-control']) }} 
       </div> 
      </div> 
      <div class="col-lg-6"> 

     </div> 
    </div> 
    <div class="box-footer"> 
     {{ Form::submit('Save', ['class' => 'btn btn-primary']) }} 
    </div> 
{{ Form::close() }} 

希望の作品です!

0

を更新したフォーム:: openメソッドでメソッドを指定する必要があります。

public function updateOrder($id, array $data) 
{ 
    $orders = $this->getById($id); 

    if (!empty($data['title'])) { 
     $orders->title = $data['title']; 
    } 

    if (!empty($data['link'])) { 
     $orders->link = $data['link']; 
    } 

    (AND SO ON) 

    $orders->save(); 

とコントローラで:

public function postOrder($id) 
{ 
    $this->orders->updateOrder($id, Input::all()); 

    return Redirect::back()->withMessage('Updated'); 
} 

、それはあなたがルートに投稿している

+0

@Kovah私はあなたに教えてくれたことをやったことがありますが、今では "validation.required"というエラーが発生しています。解決方法を知っていると思いますので、試してみましょう。ありがとう –

2

それだ、/ordersただ、リポジトリにこれを追加

{{ Form::open(array('method' => 'post')) }} 
関連する問題