2015-06-28 35 views
5

Ben Laravel 5 kullanıyorum.Laravel'e kayıt olduktan sonra yönlendirme

Başarılı bir kayıttan sonra kullanıcıyı yönlendirmek istedim. Bunları benim denetleyicimde denedim ama işe yaramıyor.

protected $loginPath = '/plan'; 
protected $redirectTo = '/plan'; 
protected $redirectAfterRegister = 'plan/'; 

kayıt işleminden sonra gerçi ama başarılı giriş bu iş.

Ayrıca bir görünüm oluşturmak için postRegister kullanmayı denedim ancak bir postRegister yöntemini kullanarak kayıt işlemini geçersiz kılıyor ve bunu yapmak istemiyorum. Sadece kullanıcıyı başarılı bir kayıtla ilgili bir sayfaya yönlendirmek istiyorum.

public function postRegister(Request $request) 
{ 
    $validator = $this->registrar->validator($request->all()); 
    if ($validator->fails()) 
    { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 
    $this->auth->login($this->registrar->create($request->all()));  
    // Now you can redirect! 
    return redirect('/plan'); 
} 

Ya da buna benzer bir şey: Eğer çalışması gerektiğini belirtmek gibi

cevap

5

postRegister işlevi geçersiz kılma, sen senin AuthController bu yapardı. senin AuthController üst kullanılan AuthenticatesAndRegistersUsers onu kopyala, burada tüm fonksiyonları bu senin AuthController varsayılan olarak orada 'AuthenticatesAndRegistersUsers' özelliği, kullanmalıdır çalışması için

bulacaksınız. http://laravel.com/docs/5.0/responses#redirects

+0

Bu gerçekten yardımcı oldu! Bu şekilde daha fazla kontrole sahip olursunuz. Sadece resgistrarı kaldırmak zorunda kaldı, çünkü 5.1'de kaldırıldı, bu yüzden $ this-> registrar-> validator'unu $ this-> validator'a değiştir, yaratılış için aynı. Doğrulayıcıya sahipseniz ve aynı sınıfta oluşturursanız. – TheYuwana

2

Basitçe Auth/AuthController.php içinde AuthController sınıfına sınırının altında eklemek

protected $redirectPath= '/plan'; 

Üstü yolu kullanılacaktır yönlendirme: Bir adlandırılmış rota yönlendirme yapmak istediğiniz durumda yönlendirmeler hakkında

diğer bilgiler Başarılı giriş ve başarılı kayıt için.

1

Ayrıca RegisterUsers.php içinde kayıt dönüşü() değiştirebilirsiniz:

İşte
public function register(Request $request) 
{ 
    $validator = $this->validator($request->all()); 

    if ($validator->fails()) { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 

    Auth::guard($this->getGuard())->login($this->create($request->all())); 
    // Originally the parameter is $this->redirectPath() 
    return redirect()->to('/plans'); 
} 
1

 /** 
    * The user has been registered. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param mixed $user 
    * @return mixed 
    */ 
    protected function registered(Request $request, $user) 
    { 

      //User register now here you can run any code you want 
      if (\Request::ajax()){ 

      return response()->json([ 
       'auth' => auth()->check(), 
       'intended' => $this->redirectPath(), 
      ]); 
      exit(); 
     } 
     return redirect($this->redirectPath()); 
    } 

uygulama için bir kayıt talebi Kulp akılda register() tutmak laravel 5.4 çözümdür. Burada, kullanıcı oluşturulduğunda registered() çağrılır.

İlgili konular