2014-01-28 2 views
4

В настоящее время у меня проблемы с Laravel 4. Я хотел бы использовать пули для категорий форума и тем форума (уникальные слизняки). Для того, чтобы детерминированным, если пользователь находится в категории или в теме, у меня есть этот маршрут:Laravel 4 Redirect :: action() «Маршрут не определен»

Route::get('forum/{slug}', function($slug) { 

    $category = ForumCategory::where('slug', '=', $slug)->first(); 

    if (!is_null($category)) 
     return Redirect::action('[email protected]', array('slug' => $slug)); 

    else { 

     $topic = ForumTopic::where('slug', '=', $slug)->first(); 

     if (!is_null($topic)) 
      return Redirect::action('[email protected]', array('slug' => $slug)); 

     else 
      return 'fail'; 

    } 

}); 

И у меня есть следующее сообщение об ошибке при попытке достичь категории:

Route [[email protected]] not defined.

Вот мой ForumCategoryController:

class ForumCategoryController extends BaseController { 

    public function findBySlug($slug) { 

     $category = ForumCategory::where('slug', '=', $slug)->first(); 

     return View::make('forum.category', array(
      'title'   => 'Catégorie', 
      'category'  => $category 
     )); 

    } 

} 

Где проблема? Есть ли способ сделать это лучше? Помогите пожалуйста :)

ответ

4

Laravel говорит, что вы должны определить маршрут использовать Route::action(), что-то вроде:

Route::get('forum/bySlug/{slug}', '[email protected]'); 

Потому что это будет на самом деле построить URL и consumme его:

http://your-box/forum/bySlug/{slug} 

Для этого он должен найти маршрут, указывающий на ваше действие.

+1

Это не имеет смысла, потому что если вы регистрируете маршрут таким образом, вам не нужно использовать метод действия, вы можете просто использовать url :: to() – keren

Смежные вопросы