laravel - 我无法从 Laravel6 中的相关表(模型)中检索数据
问题描述
我无法从相关表中检索数据。
有3个模型(表)。
- 用户
- 啁啾(有'user_id'作为外键)
- 单击(具有“chirp_id”作为外键)
然后我想从 Chirp 模型中检索 User & Click 的数据。所以我写道:
啁啾.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Chirp extends Model
{
public $timestamps = false;
protected $guarded = [];
public function user()
{
return $this->belongsTo('App\User');
}
public function clicks()
{
return $this->hasMany('App\Click');
}
}
家庭控制器.php
class HomeController extends Controller
{
public function index()
{
$chirps = Chirp::with(['user','clicks'])
->orderBy('posted_at', 'desc')
->get();
return view('home', ['chirps' => $chirps]);
}
}
主页.blade.php
@foreach($chirps as $chirp)
<div>
<div>by
<b>{{ $chirp->user->name }}</b>
on
<small>{{ $chirp->posted_at }}</small>
</div>
<div>
<p>{{ $chirp->text }}</p>
<p>{{ $chirp->click->ip_address }}</p>
</div>
</div>
@endforeach
在 home.blade.php 中,{{ $chirp->click->ip_address }}
无法检索并出现错误“Facade\Ignition\Exceptions\ViewException Trying to get property 'ip_address' of non-object”
但是,如果我删除它,我可以{{ $chirp->user->name }}
正确检索。
为什么我不能从 Chirp 模型中检索 Click 模型,而我可以从 Chirp 模型中检索 User 模型?
谢谢你。
解决方案
您还需要循环点击:
@foreach($chirps as $chirp)
<div>
<div>by
<b>{{ $chirp->user->name }}</b>
on
<small>{{ $chirp->posted_at }}</small>
</div>
@foreach($chirp->clicks as $click)
<div>
<p>{{ $chirp->text }}</p>
<p>{{ $click->ip_address }}</p>
</div>
@endforeach
</div>
@endforeach
推荐阅读
- token - Keycloak 网守更新令牌但不将其添加到请求中
- javascript - 缺少 /node_modules/fibers/bin/linux-x64-v8-7.6/fibers.node `。尝试重新安装“node-fibers”?
- heroku - 如何使用自定义 SSL 正确链接 Heroku、CloudFront、Route53?
- delphi - 如何将 Delphi OleVariant 内容转储到文件中?
- flutter - firebase_crashlytics - 是什么触发了报告的上传?
- javascript - 为什么为输入设置值在 Whatsapp 上不起作用?
- nuget - NuGet v4 contentFiles 没有被复制到输出
- python - 具有 epsilon-greedy 策略的 n 臂老虎机
- wordpress - 按字母组分组名称 - Twig、ACF
- powershell - 我需要编写脚本来每周自动更改服务器上的 IP 地址,并将最后一个八位字节加一