我有一个问题时,渴望加载的数据是已经有一对多的关系和错误,如代码如下
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'media_categories.foto_id' in 'where clause'
select * from `media_categories` where `media_categories`.`foto_id` in (2)
这个错误出现时,我试图从FotoController eagerload媒体_类别数据,为什么它的要求foto_id?
这是我的控制器
$foto = Foto::with('mediaCategory','user')->where('id', $request->id)->first();
return Inertia::render('Foto/DetailFoto', [
'foto' => $foto
]);
这是我的table设计
这是我的fotos表
Schema::create('fotos', function (Blueprint $table) {
$table->id();
$table->unsignedInteger('media_id');
$table->string('name');
$table->decimal('price');
$table->string('description');
$table->date('date');
$table->string('folder');
$table->smallInteger('pcs');
$table->unsignedInteger('user_id');
$table->timestamps();
});
这是我的media_categories表
Schema::create('media_categories', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description');
$table->unsignedInteger('user_id');
$table->timestamps();
});
这是我在foto model的关系
public function user(){
return $this->BelongsTo(User::class);
}
public function mediaCategory(){
return $this->HasMany(MediaCategory::class);
}
这是我的媒体类别模型
public function user(){
return $this->BelongsTo(User::class);
}
public function foto(){
return $this->BelongsTo(Foto::class);
}
1条答案
按热度按时间nqwrtyyt1#
您已在Foto模型中将关系定义为HasMany,但它应改为BelongsTo