试图获取非对象的属性“主机名”
Posted
技术标签:
【中文标题】试图获取非对象的属性“主机名”【英文标题】:Trying to get property 'hostname' of non-object 【发布时间】:2020-01-17 10:12:46 【问题描述】:当我使用 php artisan api:routes 时,我收到以下错误:
试图获取非对象的属性“hostname_id”
我有以下代码,这个错误在哪里:
protected $user;
protected $hostname_id;
public function __construct()
$this->user = JWTAuth::user();
$this->hostname_id = $this->user->hostname_id;
我读到了 JWTAuth::user()
返回 null 的内容,因此我无法获取 hostname_id。也许是另一种从 JWT 令牌接收登录用户数据的方式?
【问题讨论】:
嗯,您的错误与您的代码不匹配;它说“[...] 属性 hostname”,但您正在尝试访问hostname_id
。这是一个错字还是发生在其他地方?
对不起,我有两个控制器,另一个是相同的代码,但带有$this->user->hostname
我解决了,谢谢
没问题!解决方案可能与$this->user
和null
相同,因此您无法访问属性->example
,因此要么在尝试访问之前检查null
,要么回退。干杯!
【参考方案1】:
发生错误是因为当你运行 php artisan api:route
它是调用所有控制器 __constract()
函数你可以使用这个代码
protected $user;
protected $hostname_id;
public function __construct()
$this->user = JWTAuth::user();
$this->hostname_id = $this->user->hostname_id ?? null;
【讨论】:
谢谢,我明白了!以上是关于试图获取非对象的属性“主机名”的主要内容,如果未能解决你的问题,请参考以下文章