如何从对象获取属性 (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 上下文中,您可以忽略此警告。