Когда я регистрирую нового пользователя, методы Cashier работают нормально, чтобы зарегистрировать этого пользователя. Например, у меня есть это в моей модели пользователя:
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();
}
}
и я получаю следующее сообщение об ошибке: «Вызовите undefined метод stdClass :: everSubscribed()».
Если удалить это условие, я получаю следующее сообщение об ошибке: «FatalErrorException в User.php линии 124: Вызов неопределенной метод StdClass :: подписка()»
Если я заменяю эти строки кода:
$email = Input::get('email');
$user = DB::table('users')->where('email', '=', $email)->first();
с этим:
$user = new User;
Тогда я не получаю никаких ошибок, но, конечно, я не хочу, чтобы создать нового пользователя, я хочу подписаться заново мой старый пользователь. У меня была эта работа в Laravel 4.2 с почти идентичным кодом. Спасибо за любую помощь!
Спасибо, @Ben. – user3089840