我有两个模型
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');
});
}
答案 0 :(得分:0)
尝试以这种方式在关系中指定外键:
public function term_one_files()
{
return $this->hasMany('App\TermOneFile', 'curriculum_id');
}
或者您可以将迁移文件中的列名从“curriculum_id”更改为“term_one_id”。