![](/img/trans.png)
[英]FOSUserBundle - how to hold user on homepage after he sent register form?
[英]redirect user to specific page after he register its no working, the user is being redirected to the homepage
我的主頁上有一個鏈接“創建帖子”以創建新帖子( <a href="{!! route('post.create') !!}">Create Post</a>
)。
單擊此鏈接后,如果用戶通過了身份驗證,則應允許他訪問此創建帖子頁面。
但是,如果用戶未通過身份驗證,則應將其重定向到登錄/注冊頁面。 登錄或注冊后,應將他重定向到創建帖子頁面。 登錄部分正在工作,注冊部分沒有工作。
我有下面的代碼來執行此操作,但是當用戶沒有帳戶並單擊“創建帖子”時,他將被重定向到登錄頁面,並且在此登錄頁面中有指向注冊頁面的鏈接。 如果用戶單擊此注冊鏈接,將被重定向到注冊頁面。 在此頁面中,他需要輸入名稱,電子郵件和密碼並提交表單,並且由於他先前單擊了“創建帖子”鏈接,因此應將其重定向到創建帖子頁面,但該頁面不起作用,因此將其重定向到主頁,而不是創建帖子頁面。
路線:
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');
注冊控制器:
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 authenticated(Request $request, $user)
{
return redirect()->intended('/createPost');
}
}
全寄存器控制器
<?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(AuthRequest $request, $user)
{
return redirect('/createPost');
}
}
登錄或注冊后,應將他重定向到創建帖子頁面。 登錄部分正在工作注冊部分沒有工作
您可以在RegisterController
重寫register()
方法:
protected function registered($request, $user)
{
return redirect('some_page');
}
在registerController
重寫$redirect
protected $redirectTo = '/home';
至
protected $redirectTo = '/create_post';
這是一種靜態方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.