我们可以在方法调用之前添加过滤器吗?

时间:2013-09-20 00:42:49

标签: php laravel laravel-4 rails-activerecord before-filter

以Ruby on Rails为例。

class SomeController < ApplicationController
  before_filter :generateRandomValue

  def generateRandomValue
     //generates a random value between 0 and 10
  end

  def getBoo
     //Return value generated by the method above
   end
end

如果我们调用getBoo,则类将首先运行generateRandomValue,因为它在过滤前具有一般范围。

我们也可以在Ruby on Rails中过滤之前调整它,比如;

    method x,y,z runs before a method.
    method 1,2,3 runs before b,c,d method.
    method always, always runs. (think it like PHP's __construct())

在Laravel 4中控制器方法调用之前有没有办法在过滤器之前设置?

主要原因是,我希望通过在过滤器之前应用来干掉我的大部分代码。

谢谢。

1 个答案:

答案 0 :(得分:1)

是的 - 这是Laravel 4中的一项新功能。

泰勒has a good video on it here you can watch - 显示其实际效果和使用的代码。

但一般来说,只需在构造函数中添加一个过滤器:

Class ExampleController extends BaseController
{
    public function __construct()
    {
        $this->beforeFilter('myfilter');        
        $this->beforeFilter('anotherfilter')->only('getBoo');       
    }
}