如何在laravel 5.3中将变量传递给登录和注册视图

问题描述 投票:2回答:3

我正在学习和开发laravel 5.3中的项目。所以我坚持认为,对于这个项目中的每个视图,我都将变量传递给后面的视图。

public function index()
{
    $page_title = 'Page Title';

    return view('home', ['title' => $page_title]);
}

所以在登录和注册控制器中没有返回视图的方法。我想将具有不同字符串值的相同变量传递给登录和注册表单。那我怎么能这样做呢。我想问的问题是,如何在我的项目中为未定义的路由添加404错误页面。第三个问题是我可以在我的项目中添加一些用户后设置404页面来注册路由(www.myproject.com/register)。寻找回复..

laravel-5.3
3个回答
7
投票

返回视图的方法是特征,如果你想为这些方法添加自己的逻辑,你可以通过添加你自己的方法来覆盖它们,使用特征的类例如:

RegisterController

public function showRegistrationForm()
{
    $title = 'Register';

    return view('auth.register', compact('register'));
}

的LoginController

public function showLoginForm()
{
    $title = 'Login';

    return view('auth.login', compact('title'));
}

如果要添加自定义404错误页面,则只需在resources/views/errors/404.blade.php创建该文件,如文档https://laravel.com/docs/5.4/errors#custom-http-error-pages中所示

Laravel带有一个RedirectIfAuthenticated中间件,如果他们已经登录,它将(如顾名思义)将用户从路由中重新删除。默认情况下,登录和注册路由已经具有此功能。如果您想要更改此行为,只需编辑您的App\Http\Middleware\RedirectIfAuthenticated类。

希望这可以帮助!


0
投票

优化这可以节省你的'arss'

LoginController.php

public function showLoginForm()
{
    $title = 'Login';

    $css = array(
        asset('sign-up-in/css/index.css'),
    );
    $js = array(
        asset('sign-up-in/js/index.js'),
    );

    return view('auth.login', compact('title','css','js'));
}

每个其他控制器对RegisterController.php +(奖励)执行相同的操作 现在用这个来杀死它

app.blade.php

@if(isset($js)) 
    @foreach($js as $key => $value)
        <script src="{{$value}}"></script>
    @endforeach
@endif

@if(isset($css)) 
    @foreach($css as $key => $value)
        <link href="{{$value}}" rel="stylesheet">
    @endforeach
@endif

0
投票

在登录控制器> AuthenticatesUsers trait中,您可以在此处键入变量。

public function showLoginForm()
{
    $test = 'test';
    return view('auth.login', compact('test));
}
© www.soinside.com 2019 - 2024. All rights reserved.