当前位置: 首页 > 知识库问答 >
问题:

如何限制laravel模型中重复的主键?

寇和璧
2023-03-14

我正在从事一个laravel项目,其中我设置了一个自定义主键。但是,项目允许两个不同的条目在设置为主键的字段中具有相同的值。我如何限制这一点?

我已将模型上的public$incrementing属性设置为false,并将protected$keyType属性设置为string。

class Students extends Model
{
    protected $primaryKey = 'reg_no';
    public $incrementing = false;
    protected $keyType = 'string';
}

我预计代码将引发一个错误,如果我输入两个记录将相同的值在'reg_no'字段,这被定义为主要的,但记录被保存没有错误。

共有2个答案

余靖
2023-03-14

您可以在迁移中将其设置为唯一

Schema::table('students', function($table)
{
    $table->string('reg_no')->unique(); 
});

有关更多信息:https://laravel.com/docs/5.8/migrations#creating-索引

袁致远
2023-03-14

我猜不出为什么要这样更改主键,但您可以:

  • 在迁移中将列设置为唯一。
  • 使用唯一的验证规则防止重复输入
 类似资料:
  • 如何限制此地图,使我只搜索前3项,干净?

  • 本文向大家介绍Laravel 制作模型,包括了Laravel 制作模型的使用技巧和注意事项,需要的朋友参考一下 例子 模型制作 模型类必须扩展Illuminate\Database\Eloquent\Model。模型的默认位置是/app目录。 可以通过Artisan命令轻松生成模型类: 这将app/默认创建一个名为的新PHP文件[ModelName].php,并将包含新模型的所有样板,包括基本设置

  • 我有一个很长的文本要保存到这个字段中。超过65535KB。当我通过PHP保存它时,MySQL将其剪切为65535,并且不会保存所有内容。我如何解决这个问题?

  • 我该怎么办 使用Laravel查询。 到目前为止,我尝试做的是:

  • 复制模型是分布式系统中一个核心组件,每种复制模型都有自己的优缺点,在设计分布式系统的时候,需要结合业务评估各个业务模型,选择最合适的模型。常见的复制模型包括:链式复制、树形复制、分发复制等。 链式复制 链式复制是使用最广泛的复制模型,要将数据复制到全部节点之后,再向client应答成功。链式复制在发展过程中,从基本链式复制发展出了多种改进版本,来改进复制延迟。 基本链式复制 最原始的链式复制中,从