如何在laravel 5.3

时间:2017-03-09 18:38:58

标签: laravel-5.3

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

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

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

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

3 个答案:

答案 0 :(得分: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类。

希望这有帮助!

答案 1 :(得分:0)

优化,这样可以节省您的“麻烦”

  

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

答案 2 :(得分:0)

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

public function showLoginForm()
{
    $test = 'test';
    return view('auth.login', compact('test));
}