【发布时间】:2015-10-27 14:04:30
【问题描述】:
感谢您提供的任何帮助。我已经学习 Laravel 5.1 10 天了,所以对于我错过的任何建议将不胜感激!
我在解决 Laravel 5.1 中的命名路由时遇到问题。我正在构建一个应用程序,其 URL 格式为 {organisation}.website.com,其中 {organisation} 在客户注册时定义。
在使用示例子域时,代码路由完美,只要我硬编码路由地址(例如:redirect('/home');),但是当我尝试通过来自控制器的命名路由(例如:redirect()->route('session.create');)进行路由时,路由解析如下这个:
http://%7Borganisation%7D.website.com/home
我的路线如下所示:
<?php
/**
* Entity routes - resolves {organisation}.website.com
*/
Route::group([
'domain' => '{organisation}.' . env('APP_DOMAIN')
], function(){
/*
|----------------------------------------------------------------------
| Freely available routes for login, registration, password reset etc
|----------------------------------------------------------------------
*/
Route::group([
'middleware' => 'guest'
], function(){
// Login
Route::get('login', ['uses' => 'SessionController@create', 'as' => 'session.create']);
Route::post('login', ['uses' => 'SessionController@store', 'as' => 'session.check']);
});
Route::group([
'namespace' => 'Website',
'middleware' => ['authorise'],
], function(){
});
/*
|-----------------------------------------------------------------------
| Potentially secured routes
|-----------------------------------------------------------------------
*/
Route::group([
'middleware' => ['authorise']
], function(){
// Logout and destroy all Auth data
Route::get('logout', ['uses' => 'SessionController@destroy', 'as' => 'session.destroy']);
});
});
在我的控制器中,我这样称呼路由:
return redirect()
->route('session.create')
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginMessage(),
]);
它成功完成,但使用上面的 URL 和 404。如果我改成这个,它可以完美地工作。
return redirect('/home')
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginMessage(),
]);
为了使命名路由正常工作,我在组织子域中遗漏了什么?谢谢!
【问题讨论】:
标签: php routes laravel-5.1