程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Laravel 5.8 中的多对多关系错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Laravel 5.8 中的多对多关系错误?

开发过程中遇到Laravel 5.8 中的多对多关系错误的问题如何解决?下面主要结合日常开发的经验,给出你关于Laravel 5.8 中的多对多关系错误的解决方法建议,希望对你解决Laravel 5.8 中的多对多关系错误有所启发或帮助;

当我尝试在 Laravel 中检索多对多关系数据时出现错误。错误信息是

sqlSTATE[23000]:违反完整性约束:1052 where 子句中的列 'ID' 不明确(sql:select * from jobs where (not exists (select * from job_types inner join {{ 1}} on job_types_jobs.job_types = ID.job_types_jobs 其中 job_types_ID.jobs = ID.{{1} } 和 job_types_jobs.jobs_ID 为空)或存在(选择 * from job_types 内连接 deleted_at on job_types.job_types_jobs = {{1 }}.job_types 其中 ID.job_types_jobs = job_types_ID.jobsID = 3 和 job_types_jobs.{{1 }} 为空) 和 jobs_ID liKE %%) 和 ID.job_types 为空)

表格

Laravel 5.8 中的多对多关系错误

JobTypes.PHP

deleted_at

Jobs.PHP

name

JobTypeController.PHP

jobs

查看

deleted_at

迁移

public function jobs() // children  
{
    // one type of job has many jobs
    return $this->belongsToMany('App\Jobs'); // ID refer to jobs.ID
}

解决方法

您偏离了 Eloquent 用于标识不同表中字段的默认命名方案。目前,您对列使用复数形式(例如 jobs_id),但 Eloquent 假定使用单数形式 (´job_id`)。

job_job_type 迁移文件中,将所有列名称以及架构名称更改为单数名称。运行 migrate:refresh(即更新数据库模式)后,Eloquent 将能够自动将关系映射到数据库上的模式。

Schema::create('job_job_type',function (Blueprint $table) {
  $table->increments('id');
  $table->integer('job_id')->unsigned()->index();
  $table->integer('job_type_id')->unsigned()->index();
    
  $table->foreign('job_id')->references('id')->on('jobs')->onDelete('cascade');
  $table->foreign('job_type_id')->references('id')->on('job_types')->onDelete('cascade');
});

大佬总结

以上是大佬教程为你收集整理的Laravel 5.8 中的多对多关系错误全部内容,希望文章能够帮你解决Laravel 5.8 中的多对多关系错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: