繁体   English   中英

Laravel5:在雄辩的模型上调用静态方法不起作用

[英]Laravel5 : Calling a static method on eloquent model not working

我在User模型中有一个静态方法。

namespace Tol;
...
class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    ...

    public static function signup(array $data)
    {
        $user = new User([
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
            'username' => $data['username'],
            'type' => $data['type'],
        ]);

        $user->save();

        if ($user && $user->id) {
            $profile = new UserProfile([
                'first_name' => trim($data['first_name']),
                'last_name' => trim($data['last_name']),
                'gender' => $data['gender'],
            ]);

            $user->profile()->save($profile);

            EmailVerification::sendTo($user, 'signup');
        }

        return $user;
    }
    ...

}

而且我正试图从我的控制器中调用此方法。 像这样

$user = User::signup($input);

并引发如下错误: 在此处输入图片说明

我不知道为什么将它作为Builder类的方法引用。 代码非常简单,Laravel 4时一切正常。

请帮忙。 谢谢

您的代码应该没有问题,恐怕问题出在您的auth.php文件中,请确保

'model' => 'App\User',

根据您的情况将其设置为模型文件

'model' => 'Tol\User',

并确保您调用正确的文件,您可能需要尝试一下

\Tol\User::signup($array);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM