Php 如何定义在Laravel数据库迁移中工作的非id主键?

Php 如何定义在Laravel数据库迁移中工作的非id主键?,php,sql,laravel,orm,Php,Sql,Laravel,Orm,我有一张桌子,我要在那里为自定义日历保存日期。所以我不需要id pk。那么,我如何使用Elount(Laravel的ORM)将日期设置为主键呢。我已经读过拉威尔的文件了,但我找不到一个方法。可能吗?怎么做?如果没有,我将使用无用的id字段 我已经试过这样的方法: public function up() { Schema::create('t_calendarios', function (Blueprint $table) { $table->primar

我有一张桌子,我要在那里为自定义日历保存日期。所以我不需要id pk。那么,我如何使用Elount(Laravel的ORM)将日期设置为主键呢。我已经读过拉威尔的文件了,但我找不到一个方法。可能吗?怎么做?如果没有,我将使用无用的id字段

我已经试过这样的方法:

    public function up()
{
    Schema::create('t_calendarios', function (Blueprint $table) {
        $table->primary()->date('fecLab');
    });
}
$table->primary('fecLab');  //Add a primary key.

如果要设置自定义密钥,可以执行以下操作:

$table->primary(数组('key1','key2','key3')


只需指定您自己的主密钥,就可以进行设置。希望这有帮助

首先需要添加“fecLab”列,它应该是唯一的:

$table->date('fecLab')->unique();
然后,您可以这样设置主键:

    public function up()
{
    Schema::create('t_calendarios', function (Blueprint $table) {
        $table->primary()->date('fecLab');
    });
}
$table->primary('fecLab');  //Add a primary key.
如果要与其他键组合,请执行以下操作:

$table->primary(['fecLab', 'id']);  //Add composite keys.
参考: