0

フィールドのみ(複数)を検証する方法を知りたかった。例えば。Permission2 つのフィールドが一意であるという制限のあるモデルがあります。

権限の移行

Schema::create('permissions', function (Blueprint $table) {
    $table->increments('id');
    $table->string('namespace')->nullable();
    $table->string('name');
    $table->unique(array('namespace', 'name'));
});

クラスに固有のルールがあることは知っていValidatorますが、それはフィールドのみであり、2 つ以上ではないと思います。

class Permission extends BaseModel {

    protected $table = 'permissions';

    public static $rules = array(
        'name'      => 'required|alpha',
        'namespace' => 'alpha'
    );
}

class BaseModel extends Eloquent
{
    public $errors;

    public static function boot()
    {
        parent::boot();
        static::saving(function($model)
        {
            return $model->validate();
        });
    }

    public function validate()
    {
        $validation = Validator::make($this->attributes, static::$rules);

        if($validation->passes()) return true;

        $this->errors = $validation->messages();

        return false;
    }

}

私の質問は、データベースの一意の制約に複数のフィールドがあるこれらの状況を検証する方法でした。

4

1 に答える 1