2014-01-08 2 views
0

Я действительно новый в Ларавеле.Как правильно использовать laravel 4 route?

Контекст:

  • Я создал 2 миграции (users_table и posts_table).
  • Я создал 2 модели с правильными отношениями между пользователем и почтой.
  • Я засеваю некоторые данные в моей базе данных.

Но я немного запутываю маршруты и виды.

Это мой прототип:

// Posts 

Route::get('add', '[email protected]'); 
Route::post('add', '[email protected]'); 

Route::resource('posts', 'PostsController', array(
    'except' => array('create', 'store') 
)); 


// Users 

Route::get('login', '[email protected]'); 

Route::get('logout', '[email protected]'); 

Route::get('profile', array(
    'before' => 'auth', 
    'uses' => '[email protected]' 
)); 

Route::get('register', [email protected]'); 

Route::post('register', '[email protected]'); 

Route::resource('users', 'UsersController', array(
    'except' => array('create', 'store') 
)); 

Что бы вы сделали для этого простого примера?

Я действительно не знаю, как реализовать маршрутизацию пули соответствующим образом.

Есть ли у вас хорошие примеры с присвоенной маршрутизацией и seo? (Github/BitBucket)

Спасибо!

ответ

0

Это пример маршрут для почтового слизняка:

Route::get('posts/{slug}', array('as' => 'posts.show', 'uses' => '[email protected]')); 

И методы контроллера шоу:

class PostsController extends BaseController { 

    public function show($slug, $language = null) 
    { 
     if ($post = Post::findBySlug($slug)) 
     { 
      return View::make('posts.article')->with('post', $post); 
     } 

     return Redirect::route('posts.index'); 
    } 
} 

В вашей модели вы можете добавить находку метода пробкового:

public static function findBySlug($slug) 
{ 
    return Post::where('slug', $slug)->first(); 
} 

И чтобы сохранить вашу пулю, что-то вроде:

$post->title = Input::get('title'); 
$post->post = Input::get('text'); 
$post->slug = Str::slug(Input::get('title')); 
$post->save(); 
+0

Благодарим за ответ. В документации указано использование динамических областей вместо метода findBySlug. Я думал, что использование ресурсов упростит мое приложение, но я создам свои собственные маршруты. Еще один вопрос о маршрутах. Вы использовали Route :: get, Route :: post, ... или Route :: any и проверили запрос в контроллере? – user3064931

+0

Я использую Route :: get() и Route :: post(). Чем меньше кода у вас на контроллерах, тем лучше. Кроме того, посмотрите этот пост о маршрутизации: http://philsturgeon.co.uk/blog/2013/07/beware-the-route-to-evil. –

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