首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5复合主键。'where子句‘中未知列'id’

Laravel 5复合主键。'where子句‘中未知列'id’
EN

Stack Overflow用户
提问于 2018-04-19 15:29:03
回答 1查看 1.4K关注 0票数 0

我在DB中不使用'id‘列。

相反,我使用复合主键user_id + tmdb_id

如果我添加这样的新记录:

代码语言:javascript
复制
$movie = new Movie();
$movie->user_id = 1;
$movie->tmdb_id = 2;
$movie->ratio = 3;
$movie->save();

很好用!

但是,如果我试图编辑这样的现有记录:

代码语言:javascript
复制
$movie = Movie::where([
            'user_id' => 1,
            'tmdb_id' => 2,
        ])->first();

$movie->ratio = 4;
$movie->save();

那么我就有了一个错误:

代码语言:javascript
复制
Unknown column 'id' in 'where clause'.

迁移文件如下所示:

代码语言:javascript
复制
public function up()
{
    Schema::create('movies', function (Blueprint $table) {

        $table->integer('user_id')->unsigned();
        $table->integer('tmdb_id')->unsigned();
        $table->tinyInteger('ratio');

        // composite primary key
        $table->primary(['user_id', 'tmdb_id']);
    });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-19 22:27:12

Laravel不支持复合主键。

您必须使用像https://github.com/mpociot/laravel-composite-key这样的附加包。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49924862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档