2016-12-01 9 views
0

私は2つの引数と1つのリクエストをポストリクエストでコントローラに送信しようとしています。これは私が引数を送るコードです:コントローラがさらに引数を取らなかったlaravel

<form class="form-horizontal" name="form1" method="post" action="{{ route('shipment_view', $uniqueid, $category_name) }}" role="form" enctype="multipart/form-data"> 

そして、これは私が引数を送信していコントローラです:

public function storeShipment(Request $request, $number, $category_name){ 

      $category = Category::where('category_name', $category_name)->first(); 
      $user = Auth::user(); 

      $item = new Item([ 

      'id' => $user->id, 
      'category_id' => $category->id, 
      'unq' => $number, 
      'fullname' => $request->input('name'), 
      ]); 

      $item->save(); 
    } 

しかし、私はビューを開いたとき、それは

私にエラーを与えます
ErrorException in NewShipmentController.php line 53: 
Missing argument 3 for App\Http\Controllers\NewShipmentController::storeShipment() 

更新:

マイルート機能:

Route::post('/ship/preview/{number}',[ 
    'uses' => '[email protected]', 
    'as' => 'shipment_view' 
]); 

+0

あなたのルートを表示する –

+0

@ kapil.dev私はroute関数を使って質問を更新します。ルートには – Devmasta

+0

という変数が1つしかありませんが、関数を渡すと2になってしまうので、問題が発生していると思います。 –

答えて

0

を定義している1つの

Route::post('/ship/preview/{number}/{category_name}',[ 
    'uses' => '[email protected]', 
    'as' => 'shipment_view' 
]); 

希望の下であなたのルート機能を置き換えるこれはあなたを解決問題。

+0

はい私は知っていますが、/ ship/preview/{number}のように見えるようにするために、変数numberだけをルートに渡す方法はありますか、/ ship/preview/{number}/{category_name} – Devmasta

+0

これは不可能です。なぜなら、関数は2つのパラメータを取得することを期待しており、1つしか得られていないからです。 –

+0

いいえ。あなたはできるだけコントローラでcategory_nameを見つけるためにコントローラでクエリを実行することができます – Bugfixer

0

はあなたが要求それが自己を介してすべてのパラメータを取得することができます。しかし、この前に、どのようにルート

public function storeShipment(Request $request){ 

    $number = $request->number; 
    $category_name = $request->number 
} 
関連する問題