2015-01-08 2 views
1

모델 이벤트를 무시하고이 예제 코드를 찾았지만 완전히 이해하고 있는지 확신 할 수 없습니다.Laravel Eloquent 모델이 정적 부팅 방법을 무시합니다.

자료 제공 :

http://driesvints.com/blog/using-laravel-4-model-events/

정적 메서드가 작업을 수행하는 방법 ... 거기에 또 다른 정적 방법이있다? 아니면 boot 메소드의 정적 속성을 어떻게 든 설정하고 있습니까? (현재 클래스에 존재하지 않을 경우 부모 클래스)

<?php 

class Menu extends Eloquent { 
    protected $fillable = array('name', 'time_active_start', 'time_active_end', 'active'); 

    public $timestamps = false; 

    public static $rules = array(
     'name' => 'required', 
     'time_active_start' => 'required', 
     'time_active_end' => 'required' 
    ); 

    public static function boot() 
    { 
     parent::boot(); 

     static::saving(function($post) 
     { 

     });  
    }  

} 

답변

2

static::saving()는 자체에 정적 메소드 saving를 호출합니다. 그래서 부팅 기능 내에서 saving 이벤트에 대한 콜백을 등록하는

Menu::saving(function($post){ 

}); 

: 그래서 그것은 본질적으로 같은 일을한다.

Laravel documentation on model events

+0

난 다시 나에게 전화를 할 때 알고 laravel 않는 방법 부팅 방법에서 저장 메소드를 호출하고 있기 때문에? –

+0

무슨 소리 야? 부팅 방법과는 아무런 관련이 없습니다. 그것은 (모델) 이벤트가 작동하는 방법입니다. 실제로 모델을 저장하기 전에 Laravel은 등록 된 바인딩을 확인하고 호출합니다. – lukasgeiter

+0

알았어요! 감사 –