簡體   English   中英

注冊用戶無效后將其重定向到特定頁面,該用戶將被重定向到首頁

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM