2017-07-01 16 views
-1

今、私はスラッグでラーベルのURLをしようとしています。私はすべてのカテゴリを表示する私のメインページを持っています:Laravel 5.4でslugを使ってURLを作成するには?

<div class="panel-body"> 
     @foreach($categories as $category) 
      <p><a href="{{ URL::to('test/' . $category->slug) }}">{{ $category->name }}</a></p> 
     @endforeach 
</div> 

そして今私は特定のカテゴリページに行きたいです。コントローラに

Route::get('/test', '[email protected]')->name('fuel_accounting'); 
Route::get('/test/{slug}', '[email protected]'); 

と機能::私はルートを作成し

public function index() 
{ 
    $categories = DB::table('fuel_accounting_categories') 
     ->select('id', 'name', 'slug') 
     ->get(); 

    return view('pages.fuel_accounting')->with('categories', $categories); 
} 

public function element($slug) 
{ 
    $category = DB::table('fuel_accounting_categories') 
     ->select('slug') 
     ->where('slug', '=', $slug) 
     ->first(); 

    return view('pages.fuel_accounting_element')->with('category', $category); 
} 

をそして私は(例:laravel.dev/test/current_category)ページに到達しようとしているとき、それは動作しません。誰かが私にそれをどうやって説明することができますか?

エラー:申し訳ありませんが、あなたが探しているページが見つかりませんでした。 (1/1)NotFoundHttpException

FIXED

+1

ので、 "テスト" クラス名は大文字または小文字の "T" で始まる必要がありますか? – lesssugar

+0

あなたのルートとコントローラの動作は正常に見えます。これは、何らかの理由でLaravelが本当に経路を解決できないことを示唆しています。コントローラー名、アクション名にタイプミスがないか探します。また、他のルートがあなたのスラグルートを上書きしないようにしてください。さらに、 'php artisan route:clear'を実行してみてください。それは恐らく何か明白な意味です:見つけにくい; – lesssugar

+1

'select(" slug ") - > where(" slug "、" = "、$ slug)'は意味がありません。あなたはそれが何であるかを既に知っているときにデータベースを照会するのはなぜですか? – apokryfos

答えて

0
<div class="panel-body"> 
     @foreach($categories as $category) 
      <p><a href="{{URL::to('test/'.$category->name)}}">{{ $category->name }}</a></p> 
     @endforeach 
</div> 
+0

問題はここではなく、そのことではありません。もう一度読む。 –

関連する問題