2016-06-24 3 views
0

index.blade.phpの製品リストにforeachがあります。うまくいきました。フィルタリングをしようとしています。カテゴリーと性別でメニューを作っています。laravel 5.1エラーコントローラー欠落している引数1

私はカテゴリ= "Tシャツ" と性別= "女" とショーの製品が好きだろうが、私はこのエラーがあります:

<a href="{{url('shop', ['category'=> 't-shirt', 'gender' => 'woman'])}}" title=""> 
    <span>Woman</span> 
</a> 

ErrorException in StoreController.php line 36: Missing argument 1 for dixard\Http\Controllers\StoreController::products()

私はこのリンクを使用していますが

私のルート

Route::get('shop', '[email protected]'); 
Route::get('shop/{category}/{gender}','[email protected]'); 

私のコントローラ

public function products($category, $gender) 
    { 


      $gender_id= Gender::where('gender', $gender)->first(); 
      $category_id= Category::where('name', $category)->first(); 
      $filter = ['gender_id' => $gender_id->id, 'category_id' => $category_id->id]; 
      $products = Product::where($filter)->orderBy('id', 'asc')->get(); 
      $categories = Category::all(); 
      return view('store.index', compact('products','categories')); 


    } 
+0

コントローラコードにはどの行が36ですか? – Yani

+0

@ Yani line 36 - >公共機能製品($ category、$ gender) –

答えて

0

ルート機能(https://laravel.com/docs/5.1/routing)を使用してください

<a href="{{route('shop', ['category'=> 't-shirt', 'gender' => 'woman'])}}" title=""> 
<span>Woman</span> 
</a> 
+0

URLを代わりに使用するとこのエラーが表示されます: "UrlGenerator.php行のErrorException 306: Route [ショップ]が定義されていません(表示: C:\ xampp \ htdocs \ 2016 \ resources \ views \ layouts \ principal.blade.php)(表示:C:\ xampp \ htdocs \ 2016 \ resources \ views \ layouts \ principal.blade.php) " –

+0

'URL( '/ shop/t-shirt/woman')' –

+0

結果は - >ページが見つかりません –

1

あなたはという名前のルートを使用することができます。これに特別なことは何もありません。

Route::get('shop/{category}/{gender}', [ 
    'uses' => [email protected]', 
    'as' => 'shopRoute' 
]); 

そして、あなたのURL:

route('shopRoute', ['category'=> 't-shirt', 'gender' => 'woman']) 
+0

それは私に同じエラーを与えません –

+0

@ Diego182更新された答えを見てください –

+0

私はtryed!同じエラー:StoreController.phpのErrorException 36: dixard \ Http \ Controllers \ StoreController :: products()の引数1がありません。 –

0

私はこのような固定:

Route::get('shop','[email protected]'); 
Route::get('shop/{categoryA}','[email protected]'); 
Route::get('shop/{categoryB}/{genderB}','[email protected]'); 
Route::get('shop/{categoryC}/{genderC}/{slugC}','[email protected]'); 

を、私はなぜ知らないが、私は私のルートに渡すと、それが動作変数のことを変えました!

関連する問題