我正在学习和开发laravel 5.3中的项目。所以我坚持认为,对于这个项目中的每个视图,我都将变量传递给后面的视图。
public function index()
{
$page_title = 'Page Title';
return view('home', ['title' => $page_title]);
}
所以在登录和注册控制器中没有返回视图的方法。我想将具有不同字符串值的相同变量传递给登录和注册表单。那我怎么能这样做呢。我想问的问题是,如何在我的项目中为未定义的路由添加404错误页面。第三个问题是,在我的项目中添加一些用户后,我可以设置404页面来注册路由(www.myproject.com/register)
。寻找答复的答案..
答案 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));
}