如何获取一对多关系中的第二个表值

时间:2021-01-24 18:16:21

标签: laravel

我有两个模型

TermOne

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class TermOne extends Model
{
    public function term_one_files()
    {
        return $this->hasMany('App\TermOneFile');
    }
}

我想获取这个模型的值

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class TermOneFile extends Model
{
    public function term_ones()
    {
        return $this->belongsTo('App\TermOne');
    }
    
}

我想通过预先加载从 TermOneFile 中获取表中的两个值,但出现此错误:

SQLSTATE[42S22]:未找到列:1054 未知列“where 子句”中的“term_one_files.term_one_id”(SQL:select * from term_one_files where term_one_files.term_one_id in (1))

这是我的控制器

$curriculum = TermOne::with('term_one_files')->where('id', $request->curriculum_id)->get();

 dd($curriculum);

return view('backend.uploads.index', compact('grade', 'subject', 'term_id', 'curriculum'));

也许我做错了什么

term_one_files 结构

public function up()
    {
        Schema::create('term_one_files', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('curriculum_id');
            $table->string('filename')->nullable();
            $table->string('filepath')->nullable();
            $table->timestamps();

            $table->foreign('curriculum_id')->references('id')->on('term_ones')
            ->onUpdate('cascade')->onDelete('cascade');
        });
    }

1 个答案:

答案 0 :(得分:0)

尝试以这种方式在关系中指定外键:

public function term_one_files()
{
    return $this->hasMany('App\TermOneFile', 'curriculum_id');
}

或者您可以将迁移文件中的列名从“curriculum_id”更改为“term_one_id”。

相关问题