2015-06-28 16 views
5

में पंजीकरण के बाद रीडायरेक्ट मैं लैरवेल 5.लैरवेल

पर एक सफल पंजीकरण के बाद उपयोगकर्ता को रीडायरेक्ट करना चाहता था। मैंने इन्हें अपने लेखक नियंत्रक में आजमाया है लेकिन यह काम नहीं करता है।

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

सफल लॉगिन पर ये काम हालांकि पंजीकरण के बाद नहीं।

मैंने दृश्य प्रस्तुत करने के लिए postRegister भी कोशिश की है लेकिन postRegister विधि का उपयोग पंजीकरण प्रक्रिया को ओवरराइड करता है और मैं ऐसा नहीं करना चाहता हूं। मैं बस सफल पंजीकरण पर उपयोगकर्ता को एक पृष्ठ पर रीडायरेक्ट करना चाहता हूं।

उत्तर

5

ओवरराइड postRegister समारोह की तरह आप काम करना चाहिए उल्लेख, आप अपने AuthController में यह करना होगा:

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'); 
} 

या यह की तरह कुछ। AuthenticatesAndRegistersUsers कि आपके AuthController के शीर्ष में प्रयोग किया जाता है से इसे कॉपी, यहाँ आप सभी कार्यों

यह काम करने के लिए अपने AuthController 'AuthenticatesAndRegistersUsers' विशेषता है, जो डिफ़ॉल्ट रूप से है का उपयोग करना चाहिए के लिए मिल जाएगा। http://laravel.com/docs/5.0/responses#redirects

+0

इससे वास्तव में मदद मिली! इस तरह आपके पास अधिक नियंत्रण है। हालांकि, इसे resgistrar को हटा देना था, क्योंकि इसे 5.1 में हटा दिया गया था, इसलिए $-- रजिस्ट्रार-> वैलिडेटर को $-- validator, को बनाने के लिए इसे बदलें। यदि आपके पास वैधकर्ता है और उसी वर्ग में बना है जो है। – TheYuwana

2

सीधे शब्दों में प्रमाणीकरण/AuthController.php में AuthController वर्ग के लिए रेखा से नीचे जोड़ने

protected $redirectPath= '/plan'; 

ऊपर अनुप्रेषित पथ उपयोग किया जाएगा: मामले में रीडायरेक्ट आप एक नामित मार्ग रीडायरेक्ट करना चाहते हैं के बारे में

और जानकारी सफल लॉगिन और सफल रजिस्टर के लिए।

1

तुम भी() रजिस्टर की वापसी RegisterUsers.php में संशोधित कर सकते हैं:

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

यहाँ है laravel 5.4 समाधान

 /** 
    * 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()); 
    } 

मन register() में रखने के आवेदन के लिए एक पंजीकरण अनुरोध हैंडल। जहां registered() ने उपयोगकर्ता बनाया था जब बुलाया गया।