[英]Attempt to read property "username" on bool
我正在尝试在 Laravel 中使用“Eager loading relationship”。
我使用one-to-many
关系,我正在尝试使用@foreach
访问.blade.php
文件中我想要的信息,但出现错误Attempt to read property "username" on bool
I'm facing
这是我的用户 model User.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasFactory;
public function nfts()
{
return $this->hasMany(Nft::class);
}
}
这是我的 Nft model Nft.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class Nft extends Model
{
use HasFactory,SoftDeletes;
use SoftDeletes;
protected $table = 'nfts';
public function user()
{
return $this->belongsTo(User::class);
}
}
这是我的 controller NftController
public function getNft(int $id):view
{
$nft = Nft::with('user')->find($id);
return view('nfts.singleNft', ['nft'=>$nft]);
}
这是我的userinfo.blade.php
页面
<tbody>
@foreach($nft->user as $user)
<tr>
<td>1.</td>
<td>Username</td>
<td><span class="badge bg-primary">{{$user->username}}</span></td>
.
.
.
问题是什么?
您遍历项目集合。
你的nft
是单个model,不是集合。
放下foreach
<tbody>
<tr>
<td>1.</td>
<td>Username</td>
<td><span class="badge bg-primary">{{$nft->user->username}}</span></td>
.
.
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.