如何从对象获取属性 (PHP)
How to get attributes from object (PHP)
我有这个函数,它通过参数接收一个 "user" 模型,我想收集那个对象的属性,为此我这样做了,代码对我有用,但编辑器 "phpstorm" 向我抱怨这个错误,这是想知道什么是最好的方法。
谢谢
public function sendEmail(User $user)
{
$params = [
'name' => "{$user->completeName}",
'language' => "{$user->locale}",
'user_id' => "{$user->id}"
];
}
较少通过魔术方法访问的字段... (Ctrl+F1)
检查信息:在主题 class 中找不到引用的字段。注意:不对 "stdClass" 或派生类型的对象执行检查。
谢谢,
也许这样更简单
$params = $user->toArray();
或
$params = $user->toJson();
那是因为在 Laravel 中您的模型实际上没有定义属性。
在 PHP 中有魔术方法的概念( http://php.net/manual/en/language.oop5.overloading.php#object.get ),其中 __get() 方法允许您基本上拦截对否则无法访问(或不存在)属性.
这就是 Laravel 幕后发生的事情。您所有的 属性 访问都是 "intercepted" 并且 Laravel 会查看您的数据库是否包含一个名称类似于您尝试访问的 属性 的列(非常简单地说)。
在 Laravel 上下文中,您可以忽略此警告。
我有这个函数,它通过参数接收一个 "user" 模型,我想收集那个对象的属性,为此我这样做了,代码对我有用,但编辑器 "phpstorm" 向我抱怨这个错误,这是想知道什么是最好的方法。
谢谢
public function sendEmail(User $user)
{
$params = [
'name' => "{$user->completeName}",
'language' => "{$user->locale}",
'user_id' => "{$user->id}"
];
}
较少通过魔术方法访问的字段... (Ctrl+F1) 检查信息:在主题 class 中找不到引用的字段。注意:不对 "stdClass" 或派生类型的对象执行检查。
谢谢,
也许这样更简单
$params = $user->toArray();
或
$params = $user->toJson();
那是因为在 Laravel 中您的模型实际上没有定义属性。 在 PHP 中有魔术方法的概念( http://php.net/manual/en/language.oop5.overloading.php#object.get ),其中 __get() 方法允许您基本上拦截对否则无法访问(或不存在)属性.
这就是 Laravel 幕后发生的事情。您所有的 属性 访问都是 "intercepted" 并且 Laravel 会查看您的数据库是否包含一个名称类似于您尝试访问的 属性 的列(非常简单地说)。
在 Laravel 上下文中,您可以忽略此警告。