Код ошибки и обновления приведен ниже. Я использую Laravel 5.3 и php 7.0.Laravel 5.3 Ошибка: создание объекта по умолчанию из пустого значения
Я google, но все еще не ясно, любая помощь будет принята с благодарностью.
ActivationService.php
<?php
namespace App;
use Illuminate\Mail\Mailer;
use Illuminate\Mail\Message;
class ActivationService
{
protected $mailer;
protected $activationRepo;
protected $resendAfter = 24;
public function __construct(Mailer $mailer, ActivationRepository $activationRepo)
{
$this->mailer = $mailer;
$this->activationRepo = $activationRepo;
}
public function sendActivationMail($user)
{
if ($user->activated || !$this->shouldSend($user)) {
return;
}
$token = $this->activationRepo->createActivation($user);
$link = route('user.activate', $token);
$message = sprintf('Activate account <a href="%s">%s</a>', $link, $link);
$this->mailer->raw($message, function (Message $m) use ($user) {
$m->to($user->email)->subject('Activation mail');
});
}
public function activateUser($token)
{
$activation = $this->activationRepo->getActivationByToken($token);
if ($activation === null) {
return null;
}
$user = User::find($activation->user_id);
//Below is line 53.
$user->activated = true;
$user->save();
$this->activationRepo->deleteActivation($token);
return $user;
}
private function shouldSend($user)
{
$activation = $this->activationRepo->getActivation($user);
return $activation === null || strtotime($activation->created_at) + 60 * 60 * $this->resendAfter < time();
}
}
Сообщение об ошибке
ErrorException в ActivationService.php линии 53: Создание объекта по умолчанию из пустого значения
Line 53 из код выше:
$user->activated = true;
Как я могу решить проблему?
'$ user = User :: find ($ activation-> user_id);' возвращает 'false' или' null', возможно. Вы пытались сбросить '$ activation-> user_id'? Почему бы вам не использовать 'Auth :: user() -> id' вместо этого? – Mihailo