Php Laravel 4-动态布线/视图
我有一个由两个步骤组成的用户登录系统:Php Laravel 4-动态布线/视图,php,laravel,laravel-4,Php,Laravel,Laravel 4,我有一个由两个步骤组成的用户登录系统: 用户登录 尝试将用户绑定到AD(这是LDAP验证模块) 如果用户可以通过AD登录,请检查用户表中是否存在该用户 如果用户表中不存在用户,请添加它们-仅添加“用户名”和“好名字” 如果添加了用户,他们将不属于任何团队,并将被通知与他们的经理联系以继续帐户设置 将用户列加载到Laravel会话凭据中——因此现在我们有了AD登录名、“nice”名称(最后一个)、所选团队ID等。。没有密码,因为用户已通过身份验证 团队选择-表userTeamspivot表 将
凭据中
——因此现在我们有了AD登录名、“nice”名称(最后一个)、所选团队ID等。。没有密码,因为用户已通过身份验证userTeams
pivot表// This group forces user to be logged in; auth() will check if user has selected a team and ensures the team exists.
Route::group(array('before' => 'auth'), function() {
// Handle team - URL will be /dashboard -- Team controller based on view_name from `teamUsers` table
$teamUser = php_sapi_name() == "cli" ? null : @TeamUser::find(Session::get('credentials.team'));
if(!empty($teamUser)) {
$team = ucfirst(strtolower($teamUser->teams()->first()->view_name));
Route::controller('dashboard', 'Team'.$team.'Controller');
}
// Handle index
Route::controller('/', 'IndexController');
});
然而,我觉得这不是一个非常优雅的解决方案——主要是因为我不能用这种方法进行反向路由
有什么提示或建议吗?我个人会选择在自己的筛选器中执行此逻辑,而不是路由组闭包,因为您所做的只是根据变量将用户“筛选”到不同的路由(与身份验证筛选器所做的相同) 更新
Route::filter('whatever', function()
{
$teamUser = php_sapi_name() == "cli" ? null : @TeamUser::find(Session::get('credentials.team'));
if ( empty($teamUser) )
Redirect::route('IndexController');
});
Route::group(array('before' => 'auth|whatever', function()
{
Route::controller('someController');
Route::controller('/', 'IndexController');
}));
你能举个例子吗?我明白你的意思。。然而,我仍然无法从中获得反向路线。有什么想法吗?PS:Route::controller('someController')--'someController'将是动态名称,例如
'Team.$Team.controller'