尝试通过 Laravel 中的一对多关系输出文件名
Trying to output a filename through a one to many relationship in Laravel
我遇到错误
call to a member function documents() on boolean
因为我正在尝试获取卡片上传文档的文件名。我在 Cards
和 CardDocuments
之间建立了关系:
Cards.php:
public function documents()
{
return $this->hasMany(CardDocuments::class);
}
CardDocuments.php:
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
我遇到错误
call to a member function documents() on boolean
因为我正在尝试获取卡片上传文档的文件名。我在 Cards
和 CardDocuments
之间建立了关系:
Cards.php:
public function documents()
{
return $this->hasMany(CardDocuments::class);
}
CardDocuments.php:
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