2013-07-17 5 views
11

Я начал с Laravel несколько дней назад, и я столкнулся этот вопрос:Laravel контроллер построить

NO никогда не возвращается!

Это Controller, есть ли у вас какие-либо идеи, почему?

Class TestController extends BaseController { 

    public function __construct() 
    { 
     if (!Auth::check()) return 'NO'; 
    } 

    public function test($id) 
    { 
     return $id; 
    } 
} 
+0

Проверить 'Auth :: Проверка()' значение – swapnesh

+0

кажется, что __construct никогда не выполняется, так как, когда я делаю чек над функцией тест (идентификатор) он работает. –

+0

Чего вы хотите достичь? Почему вы хотите вернуть значение «НЕТ» из конструктора контроллера (выглядит как плохой подход ко мне)? – Andreyco

ответ

16
<?php 

class BaseController extends Controller { 

    public function __construct() 
    { 
     // Closure as callback 
     $this->beforeFilter(function(){ 
      if(!Auth::check()) { 
       return 'no'; 
      } 
     }); 

     // or register filter name 
     // $this->beforeFilter('auth'); 
     // 
     // and place this to app/filters.php 
     // Route::filter('auth', function() 
     // { 
     // if(!Auth::check()) { 
     //  return 'no'; 
     // } 
     // }); 
    } 

    public function index() 
    { 
     return "I'm at index"; 
    } 
} 
+0

Спасибо, как шарм. –

+1

Похоже, Laravel просто превратил 'constructors' в' фильтры': D –

+1

@RobinHood И теперь они называются «промежуточным». – totymedli

Смежные вопросы