如何正确使用laravel 4路线?

时间:2014-01-08 18:20:04

标签: routing laravel laravel-4

我在Laravel真的很新。

上下文:

  • 我创建了2次迁移(users_table和posts_table)。
  • 我创建了2个模型,其中User和Post之间的关系正确。
  • 我在我的数据库中播种了一些数据。

但我对路线和观点有点困惑。

这是我的原型:

// Posts

Route::get('add', 'PostsController@add');
Route::post('add', 'PostsController@store');

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


// Users

Route::get('login', 'UsersController@login');

Route::get('logout', 'UsersController@logout');

Route::get('profile', array(
    'before' => 'auth',
    'uses' => 'UserController@profile'
));

Route::get('register', UsersController@register');

Route::post('register', 'UsersController@store');

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

你会为这个简单的例子做些什么?

我真的不知道如何以适当的方式实现slug路由。

你有适当的路由和seo的好例子吗? (Github / BitBucket)

谢谢!

1 个答案:

答案 0 :(得分:0)

这是post slug的示例路线:

Route::get('posts/{slug}', array('as' => 'posts.show', 'uses' => 'PostsController@show'));

控制器显示方法:

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');
    }
}

在您的模型中,您可以通过slug方法添加find:

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

并保存你的slu ,,类似于:

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