2013-05-26 3 views
0

Я хотел знать, как проверять поля только на несколько (несколько). например. У меня есть модель Permission, которая имеет ограничение, в котором два поля уникальны.Validate DB Уникальные ограничения

Разрешение миграции

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

Я знаю, что Validator класс имеет единственное правило, но я думаю, что это только для поля, а не два или более.

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; 
    } 

} 

Мой вопрос состоял в том, как проверить эти ситуации, когда в единственном ограничении db имеется более одного поля.

ответ

0

Не существует собственного способа проверить это. Если вы посмотрите на Custom Validators и Uniqueness Validation, вы должны придумать решение, подходящее для ваших нужд.

Если вам не нужен что-то общее, вы можете взглянуть на this example.

Смежные вопросы