2013-07-17 25 views
11

Tôi bắt đầu với laravel vài ngày trước và tôi đang gặp phải vấn đề này:Bộ điều khiển Laravel xây dựng

NO không bao giờ được trả lại!

Đây là Controller, bạn có biết tại sao không?

Class TestController extends BaseController { 

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

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

Kiểm tra 'Auth :: séc() 'giá trị – swapnesh

+0

Dường như __construct không bao giờ được thực hiện kể từ khi tôi làm việc kiểm tra qua các thử nghiệm (id) chức năng nó hoạt động. –

+0

Bạn muốn đạt được điều gì? Tại sao bạn muốn trả về giá trị 'NO' từ hàm tạo của bộ điều khiển (trông giống như cách tiếp cận xấu đối với tôi)? – Andreyco

Trả lời

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

Cảm ơn các bạn làm việc như một sự quyến rũ –

+1

Có vẻ như Laravel vừa mới biến 'constructors' thành' filters': D –

+1

@RobinHood Và bây giờ chúng được gọi là 'middleware'. – totymedli

Các vấn đề liên quan