我是 laravel 的新手,并遵循基本应用程序的教程。到目前为止,该应用程序有一个默认视图 layouts/default.blade.php、一个部分 _partials/errors.blade.php 和其他三个视图 questions/index.blade.php、users/new.blade.php 和 users/login.blade .php
路线是这样定义的
// home get route
Route::get('/', array('as'=>'home', 'uses'=>'QuestionsController@get_index'));
//user register get route
Route::get('register', array('as'=>'register', 'uses'=>'usersController@get_new'));
// user login get route
Route::get('login', array('as'=>'login', 'uses'=>'usersController@get_login'));
//user register post route
Route::post('register', array('before'=>'csrf', 'uses'=>'usersController@post_create'));
// user login post route
Route::post('login', array('before'=>'csrf', 'uses'=>'usersController@post_login'));
questions/index.blade.php 和 users/new.blade.php 加载正常且在 default.blade.php 内
当我调用 /login 时,即使使用 default.blade.php,也会加载一个空白页面。我猜我的刀片语法在 login.blade.php 中存在问题,因为 default.blade.php 可以在其他路由上工作,据我所知,其他一切都是一样的,但如果是这样的话案例不会至少加载 default.blade.php 路由吗?
该路由调用的控制器方法如下
<?php
Class UsersController extends BaseController {
public $restful = 'true';
protected $layout = 'layouts.default';
public function get_login()
{
return View::make('users.login')
->with('title', 'Make It Snappy Q&A - Login');
}
public function post_login()
{
$user = array(
'username'=>Input::get('username'),
'password'=>Input::get('password')
);
if (Auth::attempt($user)) {
return Redirect::Route('home')->with('message', 'You are logged in!');
} else {
return Redirect::Route('login')
->with('message', 'Your username/password combination was incorrect')
->withInput();
}
}
}
?>
最后 login.blade.php
@section('content')
<h1>Login</h1>
@include('_partials.errors')
{{ Form::open(array('route' => 'register', 'method' => 'POST')) }}
{{ Form::token() }}
<p>
{{ Form::label('username', 'Username') }}
{{ Form::text('username', Input::old('username')) }}
</p>
<p>
{{ Form::label('password', 'Password') }}
{{ Form::text('password') }}
</p>
<p>
{{ Form::submit('Login') }}
</p>
{{ Form::close()}}
@stop