在 Laravel 8 中预先加载后无法访问对象字段
Can't access object field after eager loading in Laravel 8
当我试图用这样的关系急切加载我的模型时:
$plants = Plant::with('history')
->get()
->where('user_id', auth()->id());
我想用我的函数修改那些提取的日期:
foreach ($plants as $plant) {
$plant->watered_at = self::getDateForHumans($plant->history->watered_at);
$plant->fertilized_at = self::getDateForHumans($plant->history->fertilized_at);
}
我遇到这种错误:
ErrorException
Trying to get property 'watered_at' of non-object
但是如果我尝试通过 dd() 函数调试它,我会得到一个肯定的结果
dd(self::getDateForHumans($plant->history->watered_at));
dd() result
有人知道如何修复它或解决方法是什么吗?
你的历史好像没有watered_at
成员,所以才会出现这个错误。
首先检查您是否可以通过
访问该会员
if(isset($plant->history->watered_at)){
$plant->watered_at = self::getDateForHumans($plant->history->watered_at);
}
当我试图用这样的关系急切加载我的模型时:
$plants = Plant::with('history')
->get()
->where('user_id', auth()->id());
我想用我的函数修改那些提取的日期:
foreach ($plants as $plant) {
$plant->watered_at = self::getDateForHumans($plant->history->watered_at);
$plant->fertilized_at = self::getDateForHumans($plant->history->fertilized_at);
}
我遇到这种错误:
ErrorException Trying to get property 'watered_at' of non-object
但是如果我尝试通过 dd() 函数调试它,我会得到一个肯定的结果
dd(self::getDateForHumans($plant->history->watered_at));
dd() result
有人知道如何修复它或解决方法是什么吗?
你的历史好像没有watered_at
成员,所以才会出现这个错误。
首先检查您是否可以通过
访问该会员if(isset($plant->history->watered_at)){
$plant->watered_at = self::getDateForHumans($plant->history->watered_at);
}