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

时间:2015-03-24 02:42:57

标签: php eloquent laravel-5

我在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);

它会抛出这样的错误: enter image description here

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

请帮忙。 感谢

1 个答案:

答案 0 :(得分:-1)

您的代码应该没有问题,我担心您的auth.php文件中存在问题,请确保

'model' => 'App\User',

将其设置为您案例中的模型文件

'model' => 'Tol\User',

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

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