2015-06-16 29 views
8

sıkıntılardan. Kullanıcı giriş yaptığında Çalışmaz Bu denetleyici içine yönlendirmek olmazlaravel 5:</p> <pre><code>Route::get('faq', '[email protected]'); </code></pre> <p>yüzden bunu yorumlayabilir ve bu deneyin: Yönlendirme Bu hat routes.php çalışır

Route::get('faq', function() 
{ 
    if (Auth::check()) 
    { 
     return redirect()->action('[email protected]'); 
    } 
    else 
    { 
     return Redirect::to('/'); 
    } 
}); 

Hata:

New exception in xxxx.xx 
InvalidArgumentException · GET /faq 
Action App\Http\Controllers\[email protected] not defined. 

Ama kontrolör ve yöntem nettir yukarıda belirtilen kodu çalışır eylem ly orada. Açıkçası yanlış bir şey yapıyorum.

+0

siz "/" sss önce koymayı deneyin Can. Route :: get ('/ faq') gibi bir şey. – Michel

+1

, Rotanızda kimlik doğrulamayı kontrol etmiyor. bunun yerine denetleyici eylemi için middlewares kullanın. – Salar

cevap

6

Rota tanımının içinde bir şeyleri yönlendirmeye çalışıyorsunuz. Bu böyle çalışmıyor.

Elde etmek istediğiniz şeyi yapmanın birkaç yolu vardır. Her birine artı/eksiler var - ama hepsi işe yarayacaktı.

Genel olarak en iyi yol bazı Auth middleware on your route kullanmaktır. Laravel 5 includes this out of the box:

Route::group(['middleware' => 'auth'], function() { 
    Route::get('faq', '[email protected]'); 
}); 

Yani kullanıcı SSS erişmek için giriş yapmalısınız.

Diğer bir seçenek Controller Middleware yapmaktır:

sonra
Route::get('faq', '[email protected]'); 

sizin HomeController içinde:

class HomeController extends Controller 
{ 
    public function __construct() 
    { 
     $this->middleware('auth', ['only' => ['faq']]); 
    } 

    public function faq() 
    {  
     // Only logged in users can see this 
    } 
} 
+0

Çok iyi çalıştı teşekkürler. (Rota :: grup) yaklaşımı – JasonGenX

İlgili konular