Nano Hash - криптовалюты, майнинг, программирование

Ошибка при очистке доктрины - ›null var на Entity

У меня есть эта ошибка на Symfony 3, я использую сущность в сущности для вставки строки с FK в другую таблицу, в этом случае $ video содержит $ user (user_id):

Возникла исключительная ситуация при выполнении 'INSERT INTO videos (title, description, status, image, video_path, created_at, updated_at, user_id) VALUES (?,?,?,?,?,?,?,?)' С params ["titulo del video1 ", null, null, null, null," 2017-05-06 08:10:16 "," 2017-05-06 08:10:16 ", null]:

SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец user_id не может быть пустым.

У меня много null из $ user data в var $ video ... посмотрите дамп в конце сообщения

            $user_id = ($identity->sub != null) ? $identity->sub : null;

            $title = (isset($params->title)) ? $params->title : null;
            $description = (isset($params->description)) ? $params->description : null;
            $status = (isset($params->status)) ? $params->status : null;
            if ($user_id != null && $title != null) {
                $em = $this->getDoctrine()->getManager();
                $user = $em->getRepository("BackendBundle:User")->findOneBy(
                        array(
                            "id" => $user_id
                ));

                $video = new Video();
                $video->setUser($user);
                $video->setTitle($title);
                $video->setDescription($description);
                $video->setStatus($status);
                $video->setCreatedAt($createdAt);
                $video->setUpdatedAt($updatedAt);
                var_dump($video);
                $em->persist($video);
                $em->flush();

var_dump из $ video:

object(BackendBundle\Entity\Video)#313 (10) {
  ["id":"BackendBundle\Entity\Video":private]=>
  NULL
  ["title":"BackendBundle\Entity\Video":private]=>
  string(17) "titulo del video1"
  ["description":"BackendBundle\Entity\Video":private]=>
  NULL
  ["status":"BackendBundle\Entity\Video":private]=>
  NULL
  ["image":"BackendBundle\Entity\Video":private]=>
  NULL
  ["videoPath":"BackendBundle\Entity\Video":private]=>
  NULL
  ["createdAt":"BackendBundle\Entity\Video":private]=>
  object(DateTime)#281 (3) {
    ["date"]=>
    string(26) "2017-05-06 08:10:16.255330"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(12) "Europe/Paris"
  }
  ["updatedAt":"BackendBundle\Entity\Video":private]=>
  object(DateTime)#282 (3) {
    ["date"]=>
    string(26) "2017-05-06 08:10:16.255350"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(12) "Europe/Paris"
  }
  ["user":"BackendBundle\Entity\Video":private]=>
  object(BackendBundle\Entity\User)#317 (8) {
    ["id":"BackendBundle\Entity\User":private]=>
    int(8)
    ["role":"BackendBundle\Entity\User":private]=>
    string(4) "user"
    ["name":"BackendBundle\Entity\User":private]=>
    string(7) "Pruebas"
    ["surname":"BackendBundle\Entity\User":private]=>
    string(7) "Pruebas"
    ["email":"BackendBundle\Entity\User":private]=>
    string(19) "[email protected]"
    ["password":"BackendBundle\Entity\User":private]=>
    string(64) "718e3978516d387924d91980a7e21af2f434de445731951a6585bda2eacef046"
    ["image":"BackendBundle\Entity\User":private]=>
    string(14) "1494043934.png"
    ["createdAt":"BackendBundle\Entity\User":private]=>
    object(DateTime)#314 (3) {
      ["date"]=>
      string(26) "2017-05-05 10:05:36.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(12) "Europe/Paris"
    }
  }
  ["User":"BackendBundle\Entity\Video":private]=>
  NULL
}

Посмотрите на $ video ["user"], он полный, почему у меня нули на флеше? кто-нибудь знает почему?

Видео объект setUser метод

  public function setUser(\BackendBundle\Entity\User $user = null)
  {
    $this->user = $user;

    return $this;
  }

Связь видео с пользовательской БД

   manyToOne:
    User:
        targetEntity: User
        cascade: {  }
        fetch: LAZY
        mappedBy: null
        inversedBy: null
        joinColumns:
            user_id:
                referencedColumnName: id
        orphanRemoval: false

  • Можете ли вы показать определение столбцов с отношениями? От объектов "Пользователь" и "Видео". 06.05.2017
  • обновлен дополнительным кодом, ты! 06.05.2017

Ответы:


1

Измените имя поля User на user.

user: 
   targetEntity: User

Целые настройки:

manyToOne:
    user:
        targetEntity: User
        cascade: {  }
        fetch: LAZY
        mappedBy: null
        inversedBy: null
        joinColumns:
            user_id:
                referencedColumnName: id
        orphanRemoval: false

Вы также должны запустить команду, чтобы проверить, все ли отношения действительны:

php bin/console doctrine:schema:validate

06.05.2017
  • user: targetEntity: User ››› Я перехожу на это и работаю без запуска команды! n1 06.05.2017

  • 2

    Вам, вероятно, понадобится в вашем объекте User в addVideo (Video $ video) {...} добавить $ video-> setUser ($ this) ;.

    Как видите, последняя строка вашего var_dump имеет значение null.

    06.05.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..