在 Laravel 中从管理面板更改默认登录页面

Change default login pages from admin panel in Laravel

我有一个具有各种功能的管理面板。站点前端还有两个登录表单:

  1. http://example.com/login
  2. http://example.com/login2

默认登录表单是 http://example.com/login 如果 he/she 想使用第二个登录表单,用户可以点击它。

这些是他们的路线

Route::get ('/users/login', ['uses' => 'UsersController@login', 'before' => 'guest']);
Route::get ('/users/no_login', ['uses' => 'UsersController@no_login', 'before' => 'guest']);

在我的管理面板中有哪些切换器的选项,我可以从那里切换登录页面的默认页面,例如在 loginlogin2 之间切换。 如果我将它们放入数据库中,我需要更改路由以获取当前活动表单,还是有其他方法?

编辑

public function login() {       
    $login = Preferences::all();

    if ($login->preferences_login == 0){
        return View::make('users.login');
    }
    return View::make('users.no_login');           
}

错误是

Undefined property: Illuminate\Database\Eloquent\Collection::$preferences_login

你可以通过多种方式解决这个问题。

就像您在管理面板中所说的那样,制作一些 link 来切换数据库中的值,您只需要在 routes/web.php

中有一个路由
Route::get ('/users/login', ['uses' => 'UsersController@login', 'before' => 'guest']);

然后在那个控制器函数 login() 中你可以检查

if ($db_value == 1){
    return view('login');
} else {
    return view('no_login');
}

和return对应的视图

或者你可以在 .env 文件中创建一些变量

APP_FLAVOUR=your_flavour

并在控制器中检查它

if (env('APP_FLAVOUR') == your_flavour){
    return view('login');
} else {
    return view('no_login');
}

但是如果您不经常更改它,这个更像是一个固定值。