Laravel复合主键关系

时间:2019-06-11 17:46:35

标签: mysql laravel

我正在尝试调用此hasOne函数,但是我有2个主键,我该怎么做?

    public function user_ratings()
    {
        return $this->hasOne('App\User_rating', 'id_user', 'id');
    }

用户评分表

Schema::create('user_rating', function (Blueprint $table) {
            $table->integer('id_user')->unsigned(); //Increments es unsigned por defecto
            $table->integer('id_item')->unsigned();
            $table->integer('rating');
            $table->text('comment');
            $table->timestamps();

            $table->primary(['id_user', 'id_item']);

            $table->foreign('id_user')->references('id')->on('users')
                ->onUpdate('restrict')
                ->onDelete('cascade');

            $table->foreign('id_item')->references('id')->on('products')
                ->onUpdate('restrict')
                ->onDelete('cascade');
        });

这是我的数据库

Database

2 个答案:

答案 0 :(得分:0)

    public function user_ratings()
    {
        return $this->hasOne('App\User_rating', 'id_user', 'id');
    }

第二个参数是外键,第三个参数是本地键。

答案 1 :(得分:0)

虽然Laravel框架支持使用复合主键创建数据库表,但口才(ORM)不支持它们,而probably never will