【发布时间】:2015-11-14 22:27:00
【问题描述】:
我正在开发 laravel 中间件,但登录后它返回空白页面。以下是我的代码:
路由.php
Route::get('/','UsersController@login');
Route::post('dashboard','UsersController@dashboard');
Route::get('admin', ['middleware' => 'admin', function()
{
Route::get('add-post-new', function () {return view('a.addPost');});
Route::post('/add-post-new','PostsController@addPost');
Route::get('/all-post', function () {return view('a.all_post'); });
}
登录后返回add-post-new页面。但它是空白页。谁能告诉我哪里做错了。谢谢。
更新
用户控制器
public function dashboard()
{
$rules = array('email'=> 'required|email', 'password' => 'required');
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
$messages = $validator->messages();
return Redirect::to('login')->withErrors($validator);
}
$email=Input::get('email');
$password=Input::get('password');
if (Auth::attempt(['email' =>$email, 'password' => $password]))
{
return redirect()->intended('admin/add-post-new');
}
else
{
return Redirect::guest('login')->with('loginFail','Login UnSuccessful !');
}
}
登录
@extends('master')
@section('content')
<div class="row">
<div class="col-md-6">
@if(Session::get('message'))
<div class="alert alert-success fade in">
<a href="#" class="close" data-dismiss="alert">×</a>
<strong>{{ Session::get('message') }}</strong>
</div>
@endif
@if(Session::get('loginFail'))
<div class="alert alert-danger fade in">
<a href="#" class="close" data-dismiss="alert">×</a>
<strong>{{ Session::get('loginFail') }}</strong>
</div>
@endif
<form method="POST" action="dashboard" >
<div class="form-group @if ($errors->has('email')) has-error @endif">
<label for="inputEmail">Email</label>
<input type="email" class="form-control" id="inputEmail" placeholder="Email" name="email">
@if ($errors->has('email')) <div class="register-errors"> {{ $errors->first('email') }}</div> @endif
</div>
<div class="form-group @if ($errors->has('password')) has-error @endif">
<label for="inputPassword">Password</label>
<input type="password" class="form-control" id="inputPassword" placeholder="Password" name="password">
@if ($errors->has('password')) <div class="register-errors"> {{ $errors->first('password') }}</div> @endif
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-primary">Login</button>
{!! Form::token(); !!}
</form>
</div>
</div>
@stop
更新 2
这是新建项目名称的项目final.base URL
localhost/final/public
Route::group('admin',['middleware' => 'admin'], function () {
Route::get('add-post-new', function () {
//dd('something');
return view('a.addPost');
});
Route::post('/add-post-new','PostsController@addPost');
Route::get('/all-post', function () {return view('a.all_post'); });
Route::get('/add-category', function () { return view('a.addCategory');});
Route::post('/add-category','CategorysController@addCategory');
});
然后它会抛出以下错误:
ErrorException in Router.php line 343:
Argument 1 passed to Illuminate\Routing\Router::group() must be of the type array, string given, called in D:\xampp\htdocs\final\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 216 and defined
如果我的路线组如下:
Route::group(['middleware' => 'admin'], function () {
Route::get('add-post-new', function () {
//dd('something');
return view('a.addPost');
});
Route::post('/add-post-new','PostsController@addPost');
Route::get('/all-post', function () {return view('a.all_post'); });
Route::get('/add-category', function () { return view('a.addCategory');});
Route::post('/add-category','CategorysController@addCategory');
});
如果我的网址是 http://localhost/final/public/admin/add-post-new,错误为:
NotFoundHttpException in RouteCollection.php line 143:
如果我在 http://localhost/final/public/add-post-new 这样的 URL 中没有管理员运行,那么它会显示 add-post-new page
【问题讨论】:
-
您是否尝试使用中间件保护路由?
-
@Sid.yes.i 正在为多个用户做。但这里我只是为 admin 做。登录后它必须重定向到 admin/一些路由
-
@Sid. 登录后重定向到 localhost/laravel-news/public/admin/add-post-new 但它返回空白页
-
使用组作为中间件,它会解决问题。因为 Route::group(['middleware'=>'admin'],function(){ //在这里列出你的路由。});
-
@Muhammad Sadiq.nope 同样的问题
标签: php