我想要唯一的url为每个用户时,他登录。
routes.php
Route::get('/', 'HomeController@index');
Route::get('USERNAME', 'HomeController@index'); // <--- this part
Route::get('about', 'PagesController@about');
Route::get('contact', 'PagesController@contact');
Route::pattern('id', '[0-9]+');
Route::get('news/{id}', 'ArticlesController@show');
Route::get('video/{id}', 'VideoController@show');
Route::get('photo/{id}', 'PhotoController@show');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
if (Request::is('admin/*'))
{
require __DIR__.'/admin_routes.php';
}AuthControler.php
protected $redirectTo = 'USERNAME'; // <--- this part
/**
* Create a new authentication controller instance.
*
* @param \Illuminate\Contracts\Auth\Guard $auth
* @param \Illuminate\Contracts\Auth\Registrar $registrar
* @return void
*/
public function __construct(Guard $auth, Registrar $registrar)
{
$this->auth = $auth;
$this->registrar = $registrar;
$this->middleware('guest', ['except' => 'getLogout']);
}我希望当用户登录时有像www.somesite.com/USERNAME这样的url
发布于 2015-03-21 15:08:46
你可以这样做:
Route::get('/', 'HomeController@index');
Route::get('about', 'PagesController@about');
Route::get('contact', 'PagesController@contact');
Route::pattern('id', '[0-9]+');
Route::get('news/{id}', 'ArticlesController@show');
Route::get('video/{id}', 'VideoController@show');
Route::get('photo/{id}', 'PhotoController@show');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Route::get('{username}', 'HomeController@index'); // <--- this part
if (Request::is('admin/*'))
{
require __DIR__.'/admin_routes.php';
}如果没有匹配的路由,则需要使用HomeController@index。有了这段代码,你可以做到这一点。然而,在我看来,这不是最好的选择。如果一个人的用户名是“约”,那该怎么办?然后,他被重定向到有关页。我建议这样做:
Route::get('users/{username}', 'HomeController@user');如果你是个家庭主妇,你就能做到:
public function user($username)
{
//$username contains the username
//or something Auth::user()->username gives you the username
}https://stackoverflow.com/questions/29183924
复制相似问题