如何修复拉拉维尔中的错误。"试图获得非对象的财产国家"



这是异常代码在Framework/views/profile_settings.blade.php 中

当我的用户访问他们的配置文件设置时,堆栈跟踪错误总是会出现异常。请帮帮我。感谢

$('select[name=country]').val('<?php echo e($user->address->country); ?>');

空安全运算符

如果您使用的是php8。你可以写这些类型的代码

$country = null;
if ($user !== null) {
if ($user->address !== null) {
$country = $user->address->country;
}
}

PHP 8允许您编写此代码。

$country = $user?->address?->country;

它将像这些一样工作

帮助链接

$user->address可能返回null。试试类似的东西:

{{ $user->address->country ?? '' }}

我的数据库中有一个地址,但格式是json,有时没有国家。

我解决这个问题的方法是创建新的属性来处理这个问题:

public function getAddressAsStringAttribute()
{
if ($this->address == null) return null;
if (is_object($this->address) && property_exists($this->address, 'country'))
return $this->address->country;
else
return null;
}

现在你可以使用这个新属性,比如:

$('select[name=country]').val('<?php echo e($user->addressAsString); ?>');

相关内容

最新更新