我无法从相关表中检索数据。
有3个模型(表)。
然后我要从Chirp模型中检索User&Click的数据。 所以我写道:
Chirp.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');
}
}
HomeController.php
class HomeController extends Controller
{
public function index()
{
$chirps = Chirp::with(['user','clicks'])
->orderBy('posted_at', 'desc')
->get();
return view('home', ['chirps' => $chirps]);
}
}
home.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试图获取非对象的属性'ip_address'”
但是,如果删除它,则可以正确检索{{ $chirp->user->name }}
。
为什么我不能从Chirp模型中检索Click模型,却能从Chirp模型中检索用户模型?
谢谢。
答案 0 :(得分:2)
您还需要循环点击:
@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
答案 1 :(得分:1)
线性调频有很多点击(没有点击)。您必须在刀片中插入$chirp->clicks
。
@foreach ($chirp->clicks as $click)
<p>This is click id {{ $click->id }}</p>
@endforeach
答案 2 :(得分:1)
您与Chirp
和clicks
有很多关系
在这里,您获得的点击次数多于点击次数
@foreach($chirp->clicks as $click)
<p>{{ $click->ip_address }}</p>
@endforeach
答案 3 :(得分:1)
要调试此问题,您可以采取以下步骤:
检查chirps变量在控制器内是否有任何数据。
dd($ chirps);
@foreach($chirps as $chirp)
@foreach($chirp->clicks as $click)
<div>
<p>{{ $chirp->text }}</p>
<p>{{ $click->ip_address }}</p>
</div>
@endforeach
@endforeach