我正在做一个laravel项目,在其中我设置了一个自定义主键。但是,该项目允许两个不同的条目在设置为主键的字段中具有相同的值。我该如何限制呢?
我已将模型上的公共$ incrementing属性设置为false,还将受保护的$ keyType属性设置为string。
class Students extends Model
{
protected $primaryKey = 'reg_no';
public $incrementing = false;
protected $keyType = 'string';
}
我希望如果我输入两条记录,代码将引发错误,在'reg_no'字段(定义为primary)中将具有相同的值,但是该记录将被保存而没有错误。
答案 0 :(得分:1)
无法猜测为什么要这样更改主键,但是可以:
答案 1 :(得分:0)
您可以在迁移中将其设置为唯一
Schema::table('students', function($table)
{
$table->string('reg_no')->unique();
});
有关更多信息:https://laravel.com/docs/5.8/migrations#creating-indexes