Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.1和出纳未按预期与$user交互_Php_Laravel_Laravel 5_Laravel 5.1_Laravel Cashier - Fatal编程技术网

Php Laravel 5.1和出纳未按预期与$user交互

Php Laravel 5.1和出纳未按预期与$user交互,php,laravel,laravel-5,laravel-5.1,laravel-cashier,Php,Laravel,Laravel 5,Laravel 5.1,Laravel Cashier,当我注册一个新用户时,出纳的方法可以很好地注册该用户。例如,我的用户模型中有: public static function registerUser() { $user = new User; $stripeToken = Input::get('stripeToken'); $user->subscription('yearly')->create($stripeToken); $user->save(); } 在我的用户模型中,我还有一个“重新订阅”方法,使用类似的出纳

当我注册一个新用户时,出纳的方法可以很好地注册该用户。例如,我的用户模型中有:

public static function registerUser()
{
$user = new User;
$stripeToken = Input::get('stripeToken');
$user->subscription('yearly')->create($stripeToken);
$user->save();
}
在我的用户模型中,我还有一个“重新订阅”方法,使用类似的出纳方法:

public static function resubscribe(){
    $email = Input::get('email');
    $user = DB::table('users')->where('email', '=', $email)->first();
    if ($user->everSubscribed()) {
        $credentials = Input::only(['email', 'password']);
        $stripeToken = Input::get('stripeToken');
        $user->subscription('monthly')->resume($stripeToken);
        $user->save(); 
     }
}
我得到以下错误:“调用未定义的方法stdClass::everSubscribed()

如果删除该条件,将出现以下错误:“User.php第124行中的FatalErrorException:调用未定义的方法stdClass::subscription()

如果替换这些代码行:

$email = Input::get('email');
$user = DB::table('users')->where('email', '=', $email)->first();
为此:

$user = new User;

然后我没有收到任何错误,但当然,我不想创建新用户,我想重新订阅我的旧用户。我在Laravel4.2中使用了几乎相同的代码。谢谢你的帮助

您需要使用雄辩而不是查询生成器:

$user=user::where('email','=',$email)->first()

查询生成器
DB::table('users')->where('email','=',$email)->first()
返回一个
stdClass
对象,而不是用户模型的实例