【发布时间】:2017-03-11 20:15:44
【问题描述】:
我有两个模型:城市和学校。正如您已经了解的那样,城市可以有很多学校,考虑到这一点,我将我的模型定义如下:
class School extends Model
{
public $fillable = ['city_id' ,'name'];
public function city()
{
return $this->belongsTo('App\City','city_id','id');
}
}
class City extends Model
{
public $fillable = ['name'];
Public function schools()
{
return $this->hasMany('App\School', 'id','city_id');
}
}
但我在尝试验证学校模型的更新时遇到了问题。我必须验证学校名称对于所选城市是否唯一。我已经定义了这样的规则:
$rules = array(
'name' => ['required', Rule::unique('schools')->ignore($id)],
);
$validator=Validator::make(Input::all(),$rules);
但不允许将现有名称的学校保存在所选城市以外的其他城市。如果城市不同,我应该如何更改规则以确保学校名称可以相同。
谢谢。
【问题讨论】:
-
添加额外的 Where 子句。
标签: php mysql laravel-5.3