试图通过Laravel中的一对多关系输出文件名



我得到错误

调用布尔上的成员函数documents((

因为我正在尝试获取卡片上传文档的文件名。我在CardsCardDocuments:之间创建了一个关系

Cards.hp:

public function documents()
{
return $this->hasMany(CardDocuments::class);
}

CardDocuments.hp:

public function files()
{
return $this->belongsTo(Card::class, 'card_id');
}

之后,我在视图中使用了这个:

@foreach ($cards as $card)
{{ $card->documents()->filename }}
@endforeach

以及card_document迁移:

Schema::create('card_documents', function (Blueprint $table) {
$table->increments('id');
$table->unsignedBigInteger('card_id')->unsigned()->index();
$table->foreign('card_id')->references('id')->on('cards');
$table->string('filename')->nullable();
$table->timestamps();
});

不确定为什么这会显示一个布尔错误,因为文件提交工作正常,并且文件成功保存到数据库中,所以不明白为什么我不能访问documents()来获得要输出的文件名。

我认为文档是嵌套数组:

@foreach ($cards as $card)
@foreach ($card->documents as $document)
{{ $document->filename }}
@endforeach
@endforeach

最新更新