문제

Take this Ruby on Rails example.

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

If we call getBoo, class will run generateRandomValue first because it has a general scoped before filter.

We can also tweak this before filters in Ruby on Rails, like;

    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())

Is there any way to set before filters before controller method calls in Laravel 4?

The main reason is, I want to DRY most of my code by applying before filters.

Thank you.

도움이 되었습니까?

해결책

Yes - this is a new feature in Laravel 4.

Taylor has a good video on it here you can watch - which shows it in action and the code to use.

But in general you just add a filter to your constructor:

Class ExampleController extends BaseController
{
    public function __construct()
    {
        $this->beforeFilter('myfilter');        
        $this->beforeFilter('anotherfilter')->only('getBoo');       
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top