Symfony - вызов функции-члена setFunction () при нулевом значении

Я написал код для возврата данных, но продолжаю получать сообщение об ошибке «Вызов функции-члена 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(), укажите код, в котором возникает эта ошибка.

M. Kebza 30.05.2018 11:42

Мне очень жаль, что setFunction на самом деле enableNotification ..

Филип Стојановић 30.05.2018 11:47

Попробуйте обновить свой вопрос фактическим сообщением об ошибке. Если это enableNotification, то my.route не существует, что должно было вызвать другую ошибку. Если установлено значение setNotification, это означает, что $ user имеет значение null, что, в свою очередь, означает, что вы не вошли в систему. В любом случае наличие фактического сообщения об ошибке может уменьшить изрядное количество предположений.

Cerad 30.05.2018 14:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
679
2

Ответы 2

Это эквивалентно Java NullPointerException. Я предполагаю, что у вас есть класс с методом setFunction (), и ваш экземпляр этого класса равен нулю.

В сообщении об ошибке говорится, что вы не можете этого сделать:

null->setFunction($varToSet);

Попробуйте указать код, в котором это происходит

Обновлено: Что касается вашего последнего комментария к вопросу, это означает, что ваш сервис равен нулю. Какую версию Symfony вы используете?

Я определил его в своей Entity / ** * @ORM \ Column (name = "system_notifications", type = "smallint", options = {"default": 0}) * @Groups ({"user_data"}) * / private $ уведомление = ложь;

Филип Стојановић 30.05.2018 11:51

Вы имеете в виду, что setFunction на самом деле является setNotification? Если это так, ваш пользователь, которого вы получаете от $ this-> getUser () в вашем контроллере, имеет значение NULL. Вы уверены, что у вас есть логин, когда вы вызываете действие своего контроллера?

Florian Hermann 30.05.2018 11:54

Да, это так! Я вошел в систему, все остальные функции работают нормально .. Я использую Postman для проверки возврата данных.

Филип Стојановић 30.05.2018 11:57

Затем вы можете проверить свое пользовательское значение перед вызовом вашей службы с помощью: dump ($ this-> getUser ()); die; Вы можете увидеть, является ли это экземпляром сущности User с этим или он равен нулю. Если вы используете Почтальон для звонка, вам также необходимо войти в систему с помощью Почтальона.

Florian Hermann 30.05.2018 12:00

Я тоже пробовал, но безуспешно. Если найду решение, выложу здесь.

Филип Стојановић 30.05.2018 12:16

$this->container->get('my.route') возвращает ноль. Ваш сервис не создан, поэтому, возможно, он неправильно объявлен или у вас есть опечатка в ключе вашей службы.

Другие вопросы по теме