无法从 Eloquent 集合中访问所需的属性

Posted

技术标签:

【中文标题】无法从 Eloquent 集合中访问所需的属性【英文标题】:Can't access desired attributes from Eloquent Collection 【发布时间】:2017-06-10 02:40:53 【问题描述】:
$result = User::where('email_add', '=', $username)->first();

这是我在 $result 上使用 var_dump 时出现的结果

object(User)#22 (30) ["user_id"]=> int(0) ["fname"]=> string(0) "" ["lname"]=> string(0) "" ["mname"]=> string(0) "" ["bdate"]=> string(0) "" ["contact"]=> string(0) "" ["email_add"]=> string(0) "" ["fillable":protected]=> array(6) [0]=> string(5) "fname" [1]=> string(5) "mname" [2]=> string(5) " lname" [3]=> string(5) "bdate" [4]=> string(7) "contact" [5]=> string(9) "email_add" ["connection":protected]=> NULL [ "table":protected]=> NULL ["primaryKey":protected]=> string(2) "id" ["keyType":protected]=> string(3) "int" ["perPage":protected]=> int(15) ["incrementing"]=> bool(true) ["timestamps"]=> bool(true) ["attributes":protected]=> array(10) ["user_id"]=> int(33 ) ["fname"]=> string(6) "Robert" ["lname"]=> string(6) "Marley" ["mname"]=> string(5) "Nesta" ["bdate"]=> string(10) "0000-00-00" ["contact"]=> string(11) "09123847599" ["email_add"]=> string(40) "7c9ac9ca8543dd84f71aa541d422e2a95d3e7450" ["photo"]=> NULL ["created_at "]=> 字符串(19) "2017-01-25 01:03:06" ["updated_at" ]=> string(19) "0000-00-00 00:00:00" ["original":protected]=> array(10) ["user_id"]=> int(33) ["fname"] => string(6) "Robert" ["lname"]=> string(6) "Marley" ["mname"]=> string(5) "Nesta" ["bdate"]=> string(10) "0000 -00-00" ["contact"]=> string(11) "09123847599" ["email_add"]=> string(40) "7c9ac9ca8543dd84f71aa541d422e2a95d3e7450" ["photo"]=> NULL ["created_at"]=> string( 19)“2017-01-25 01:03:06”[“updated_at”]=> 字符串(19)“0000-00-00 00:00:00”[“关系”:受保护]=> 数组(0 ) ["hidden":protected]=> array(0) ["visible":protected]=> array(0) ["appends":protected]=> array(0) ["保护":protected]=> 数组(1) [0]=> 字符串(1) "*" ["dates":protected]=> 数组(0) ["dateFormat":protected]=> NULL ["casts":protected]=> array(0) ["touches":protected]=> array(0) ["observables":protected]=> array(0) ["with": protected]=> array(0) ["exists"]=> bool(true) ["wasRecentlyCreated"]=> bool(false)

当我使用 foreach 对 $result 上的每个 $user 进行 var_dump 时,会发生以下情况

int(0) string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" string(0) "" bool(true) bool(true) bool(true) bool(false) 

我一直在寻找解决方案,但似乎没有找到,我一开始使用的是 get(),但我在某处读到,如果我只期待 1 个结果,我应该先使用() 但它不会改变任何东西。我无法访问集合..

【问题讨论】:

您是如何访问结果的?是不是... $result->fname ? 是的,完全一样.. 【参考方案1】:

我找到了解决办法

这个one帮助了我。

在我的 ->first() 上添加 ->toArray 很神奇,它只返回一个具有确切属性的数组,没有不必要的对象属性。

【讨论】:

以上是关于无法从 Eloquent 集合中访问所需的属性的主要内容,如果未能解决你的问题,请参考以下文章

无法从 eloquent 关系集合中选择特定参数 - 在 tinker 中工作

[INS-30131]执行安装程序验证所需的初始设置失败(无法访问临时位置)解决方法!

Error-Oracle:[INS-30131]执行安装程序验证所需的初始设置失败(无法访问临时位置)解决方法!

无法以所需的方式将 XML 属性值解析为 C# 枚举

无法将 java.lang.String 类型的属性值转换为所需的 java.util.Date 类型

无法从反应光滑中获得所需的结果