仅在先前在创建新帖子链接中单击用户时,才会在注册后将用户重定向到创建帖子页面

时间:2018-02-16 17:10:48

标签: php laravel

我有一个主页,其中包含“创建帖子”链接以创建新帖子(创建帖子)。

单击此链接时,如果用户已通过身份验证,则应允许他访问此创建帖子页。

但是当用户没有帐户并点击“创建帖子”时,他被重定向到登录页面,在此登录页面中有一个指向注册页面的链接。如果用户点击此注册链接将被重定向到注册页面。

在此页面中,他需要输入姓名,电子邮件和密码并提交表单以创建帐户,并且因为他之前曾在“创建帖子”链接中查看过,所以应该将其重定向到创建帖子页面,但它不能正常工作正确:

错误:

如果用户之前点击了创建新帖子链接,则应该在注册后重定向到创建帖子页面,否则他应该在注册后重定向到主页。但是用户在注册后总是被重定向到创建帖子页面。

你知道错误在哪里吗?

RegisterController

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use App\Http\Controllers\Auth\Request as AuthRequest;

class RegisterController extends Controller
{


    use RegistersUsers;

    protected $redirectTo = '/home';


    public function __construct()
    {
        $this->middleware('guest');
    }


    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
        ]);
    }


    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),

        ]);
    }

   protected function registered($request, $user)
    {
     return redirect('(/users/createPost');
    }
}

路线:

Route::group(['prefix' => 'users', 'middleware' => 'auth'], function(){
    Route::post('/post/store', [
        'uses' => 'PostController@store',
        'as'   => 'post.store'
    ]);

    Route::get('/createPost', [
        'uses' => 'PostController@create',
        'as'   => 'post.create'
    ]);
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

1 个答案:

答案 0 :(得分:0)

您可以使用__construct的{​​{1}}方法进行此更改:

RegisterController

因此,只要您尝试访问需要身份验证的网页,就会被重定向到您尝试访问的上一页,而不会进行身份验证。