流明自动增量关系创建停留在0

时间:2016-12-11 02:13:00

标签: php sqlite eloquent lumen

我有一个班级Chat

class Chat extends Model
{
    protected $primaryKey = 'chat_id';
    protected $guarded    = [];

    public function comment()
    {
        return $this->hasOne(Comments::class, 'comment_id', 'comment_id');
    }
}

课程Comments

class Comments extends Model
{
    protected $primaryKey = 'comment_id';
    protected $guarded    = [];
}

这里是Comments表的迁移:

public function up()
{
    Schema::create('comments', function (Blueprint $table) {
        $table->increments('comment_id');
        $table->integer('user_id')->unsigned()->index('comments_user_id');
        $table->boolean('mark');
        $table->string('nick_name', 15)->nullable();
        $table->text('comment', 65535);
    });
}

Chat有一个名为comment_id的列。

当我使用Comments基本方式创建Eloquent时,一切正常,Comments.comment_id从1开始,下一个Comments.comment_id列会增加:

$comment = Comments::create([
                'user_id' => 1,
                'mark' => 50,
                'comment' => 'Lorem ipsum dolor es at'
            ]); // $comment->comment_id = 1

但每当我通过Chat关系创建时,Comments.comment_id 总是等于0:

$comment = $chat->comment()->create([
                'user_id'    => 1,
                'mark'       => 50,
                'comment'    => 'Lorem ipsum dolor es at',
            ]); // $comment->comment_id = 0

我说总是,因为在关系中创建两个Comments会在Comments.comment_id字段上抛出一个UNIQUE约束异常。

我的配置是否有错误? 顺便说一句,我使用SQLite(这在测试时发生),如果有任何兴趣的话。

1 个答案:

答案 0 :(得分:1)

聊天关系应该是belongsTo关系,而不是hasOne。