Я написал код для возврата данных, но продолжаю получать сообщение об ошибке «Вызов функции-члена setFunction () при нуле» ...
Моя служба ..
public function enableNotification($user)
{
$user->setNotification(1);
$this->em->flush();
}
Мой контроллер ..
public function enableNotificationAction()
{
$user = $this->getUser();
$this->container->get('my.route')->enableNotification($user);
return $this->success('', 'true');
}
Мне очень жаль, что setFunction на самом деле enableNotification ..
Попробуйте обновить свой вопрос фактическим сообщением об ошибке. Если это enableNotification, то my.route не существует, что должно было вызвать другую ошибку. Если установлено значение setNotification, это означает, что $ user имеет значение null, что, в свою очередь, означает, что вы не вошли в систему. В любом случае наличие фактического сообщения об ошибке может уменьшить изрядное количество предположений.






Это эквивалентно Java NullPointerException. Я предполагаю, что у вас есть класс с методом setFunction (), и ваш экземпляр этого класса равен нулю.
В сообщении об ошибке говорится, что вы не можете этого сделать:
null->setFunction($varToSet);
Попробуйте указать код, в котором это происходит
Обновлено: Что касается вашего последнего комментария к вопросу, это означает, что ваш сервис равен нулю. Какую версию Symfony вы используете?
Я определил его в своей Entity / ** * @ORM \ Column (name = "system_notifications", type = "smallint", options = {"default": 0}) * @Groups ({"user_data"}) * / private $ уведомление = ложь;
Вы имеете в виду, что setFunction на самом деле является setNotification? Если это так, ваш пользователь, которого вы получаете от $ this-> getUser () в вашем контроллере, имеет значение NULL. Вы уверены, что у вас есть логин, когда вы вызываете действие своего контроллера?
Да, это так! Я вошел в систему, все остальные функции работают нормально .. Я использую Postman для проверки возврата данных.
Затем вы можете проверить свое пользовательское значение перед вызовом вашей службы с помощью: dump ($ this-> getUser ()); die; Вы можете увидеть, является ли это экземпляром сущности User с этим или он равен нулю. Если вы используете Почтальон для звонка, вам также необходимо войти в систему с помощью Почтальона.
Я тоже пробовал, но безуспешно. Если найду решение, выложу здесь.
$this->container->get('my.route') возвращает ноль.
Ваш сервис не создан, поэтому, возможно, он неправильно объявлен или у вас есть опечатка в ключе вашей службы.
В вашем коде нет места, где вы вызываете
setFunction(), укажите код, в котором возникает эта ошибка.