我有一个主页,其中包含“创建帖子”链接以创建新帖子(创建帖子)。
单击此链接时,如果用户已通过身份验证,则应允许他访问此创建帖子页。
但是当用户没有帐户并点击“创建帖子”时,他被重定向到登录页面,在此登录页面中有一个指向注册页面的链接。如果用户点击此注册链接将被重定向到注册页面。
在此页面中,他需要输入姓名,电子邮件和密码并提交表单以创建帐户,并且因为他之前曾在“创建帖子”链接中查看过,所以应该将其重定向到创建帖子页面,但它不能正常工作正确:
错误:
如果用户之前点击了创建新帖子链接,则应该在注册后重定向到创建帖子页面,否则他应该在注册后重定向到主页。但是用户在注册后总是被重定向到创建帖子页面。
你知道错误在哪里吗?
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');
答案 0 :(得分:0)
您可以使用__construct
的{{1}}方法进行此更改:
RegisterController
因此,只要您尝试访问需要身份验证的网页,就会被重定向到您尝试访问的上一页,而不会进行身份验证。