我正在向BaseModel类添加验证,所有雄辩模型最终都会在我的应用程序中扩展。
基类类似于:
class BaseModel extends Eloquent {
private $errors;
private $validator;
public function __construct()
{
$this->validator = new BaseValidator(get_class($this));
}
public static function boot()
{
parent::boot();
static::creating(function($model) {
return false;
});
static::saving(function($model)
{
return false;
});
}
扩展基地的样本混凝土:
class News extends BaseModel {
protected $guarded = ['audience', 'deleted_at'];
protected $table = 'zbw_news';
//relations, scopes, etc
}
每当我通过工匠修补器创建一个新对象时,不会触发保存闭包(当它返回true
时它会返回false
)。但是,我可以直接在模型的静态(而不是后期静态绑定)上绑定一个闭包,它可以按预期工作:
\News::saving(function($model) { return false; });
为什么启动方法没有被正确调用或者我在这里做错了什么?