不能设置退出后,跳转到文章列表页面

来源:6-9 文章路由控制的实现

永不止息L

2017-12-02

我想设置退出后,跳转到文章列表页面,但是不成功,只能跳转到登陆页面.这个功能是类似于,一旦你退出后你变成了一个游客,依然可以看到所有人发布的文章列表,只是不可以操作编辑删掉等登陆以后才可以实现的功能。

web.php:

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
// 文章列表页
Route::get('/posts', '\App\Http\Controllers\PostController@index');
// 用户模块
Route::get('/',function(){return redirect('/posts');});
// 注册页面
Route::get('/register', '\App\Http\Controllers\RegisterController@index');
// 注册行为
Route::post('/register', '\App\Http\Controllers\RegisterController@register');
// 登陆页面
Route::get('/login', '\App\Http\Controllers\LoginController@index')->name('login');
// 登陆行为
Route::post('/login', '\App\Http\Controllers\LoginController@login');


Route::group(['middleware' => 'auth:web'], function () {
   // 登出行为
   Route::get('/logout', '\App\Http\Controllers\LoginController@logout');
// 个人设置页面
   Route::get('/user/me/setting', '\App\Http\Controllers\UserController@setting');
//个人设置操作
   Route::post('/user/me/setting', '\App\Http\Controllers\UserController@settingStore');
// 文章列表页
   Route::get('/posts', '\App\Http\Controllers\PostController@index');

// 创建文章
   Route::get('/posts/create', '\App\Http\Controllers\PostController@create');
// 文章详情页
   Route::get('/posts/{post}', '\App\Http\Controllers\PostController@show');
   Route::post('/posts', '\App\Http\Controllers\PostController@store');
// 编辑文章
   Route::get('/posts/{post}/edit', '\App\Http\Controllers\PostController@edit');
   Route::put('/posts/{post}', '\App\Http\Controllers\PostController@update');
// 删除文章
   Route::get('/posts/{post}/delete', '\App\Http\Controllers\PostController@delete');

// 图片上传
   Route::post('/posts/image/upload', '\App\Http\Controllers\PostController@imageUpload');
});

LoginController.php:

<?php

namespace App\Http\Controllers;

use App\Http\Middleware\RedirectIfAuthenticated;
use Illuminate\Http\Request;

class LoginController extends Controller
{
   //登录页面
   public function index()
   {
       if(\Auth::check()){
           return redirect('/posts');
       }
return view('login.index');
   }

   // 登陆行为
   public function login()
   {
//验证
$this->validate(request(),[
'email'=>'required|email',
   'password'=>'required|min:5|max:10',
   'is_remember'=>'integer']);
       //逻辑
$user = request(['email','password']);
       $is_remember = boolval(request('is_remember'));
if(\Auth::attempt($user,$is_remember)){
   return redirect('/posts');
}

       //渲染
       return \Redirect::back()->withErrors('邮箱密码不匹配');
   }

   // 登出行为

   /**
    * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
    */
   public function logout()
   {
       \Auth::logout();
       return redirect('/posts');
   }
}

写回答

1回答

qq_Innocence_29

2017-12-03

首先看下你的PostController里index方法的跳转链接改没改过来,其次我发现你贴出来的web.php有两个文章列表页的路由,你看下是不有一个走auth验证中间件了

0
0

Laravel快速开发简书

Laravel最新特性结合Mysql异步消息队列、ElasticSearch搜索引擎、Debugbar调试利器开发简书

1218 学习 · 613 问题

查看课程