使用外键为表创建有说服力的关系以透视表-Laravel

使用外键为表创建有说服力的关系以透视表-Laravel,laravel,laravel-5.8,Laravel,Laravel 5.8,我有一个数据透视表(builder\u project),我在“项目”和“构建者”表之间的多对多关系中使用它。到目前为止,一切都很顺利 但是,我希望用户能够向数据透视表(builder\u project)中添加“notes”,因为可以添加许多注释,所以我创建了一个名为“notes”的表,该表与数据透视表具有一对多关系 然而,我尝试为透视表创建一个模型;当我尝试在pivot模型中访问该方法时,出现以下错误: SQLSTATE[42S22]:未找到列:中的1054未知列“notes.” “wher

我有一个数据透视表(builder\u project),我在“项目”和“构建者”表之间的多对多关系中使用它。到目前为止,一切都很顺利

但是,我希望用户能够向数据透视表(builder\u project)中添加“notes”,因为可以添加许多注释,所以我创建了一个名为“notes”的表,该表与数据透视表具有一对多关系

然而,我尝试为透视表创建一个模型;当我尝试在pivot模型中访问该方法时,出现以下错误:

SQLSTATE[42S22]:未找到列:中的1054未知列“notes.” “where子句”(SQL:select*from
builder\u project
where-exists (从
notes
中选择*其中
builder\u project
project\u projectd
=
注释
``)

这是我的pivot模型的代码:

namespace Estimating;

use Illuminate\Database\Eloquent\Relations\Pivot;

class Builder_project extends Pivot
{


    protected $table = "builder_project";

    protected $primaryKey = 'project_projectID'; // I need to add the other primary key here but I undestand it's not possible on Laravel
    protected $fillable = [
        'project_projectID',
        'builder_builderID',
        'note',

    ];
    // One to many relationships
    /**
     * 
     */
    public function test()
    {
        return $this->hasMany('Estimating\Builder_project_note');
    }

}

这是建筑商项目的模型注:

<?php

namespace Estimating;

use Illuminate\Database\Eloquent\Model;

class Builder_project_note extends Model
{
    //Determines which database table to use, in this case 'projects' table
    protected $table = "notes";

    protected $primaryKey = 'noteID';
    protected $fillable = [
        'project_projectID',
        'builder_builderID',
        'note',

    ];

    // One to many relationships
    /**
     * Get the status that owns the project.
     */
    public function test()
    {
        return $this->belongsTo(
            'Estimating\Builder_project'); // I know that here I need an ID from Builder_project pivot table - but I have a composite key!;
    }


}
如果有人能给我指出正确的方向,我将不胜感激,如果我不够清楚,我将表示歉意——这是我在这里的第一篇帖子:)

我已经上传了我的数据库模型示例:
Laravel不喜欢基于多个列的主键。您需要添加自己的builder\u project.id列(在透视表中),该列将是notes表使用的字段。

请您也共享
builder\u project\u note
模型@拉希德哈桑-谢谢你的评论,拉希德-我已经在我原来的问题中添加了这个。谢谢你的回答,乔治-我试图实施你的建议;但是,由于“project\u projectID”和“builder\u builderID”充当复合键,因此我无法添加另一个具有自动递增功能的主键,因为我遇到了一个错误。我还尝试使这两列都成为非主键,但仍然无法使新的“builder\u project.id”列自动递增。
public function editBuilderProject(Request $request, $builderID, $projectID)
    {
        $browserDetails = new Agent();
        $project = Project::find($projectID); 
        $builder = Builder::find($builderID);

        $builder_project_statuses = Builder_project_status::all();

        $builder_project_note = Builder_project::has('test')->get();

        dd($builder_project_note);



        return view('projects/edit-builder-project', compact('browserDetails', 'project','builder', 'builder_project_statuses', 'builder_project_note'));
        //return  $projectID."  ". $builderID;
    }