HiddenType в форме Symfony не отображается

Я пытаюсь передать случайное число в свою форму и использовать его как значение HiddenType. Я использую 'attr' => [ 'value' => '$options['editId'], чтобы поместить значение в текстовое поле, но когда форма отправляется, значение не вставляется в таблицу.

Listing.php

/**
 * @ORM\Column(type = "integer", nullable=false, name = "edit_id")
 */
protected $editId;
    /**
     * @return mixed
     */
    public function getEditId()
    {
        return $this->editId;
    }
    /**
     * @param mixed $editId
     */
    public function setEditId($editId)
    {
        $this->editId = $editId;
    }

Итак, я установил имя переменной в $ editId, и, насколько мне известно, имя переменной - это то, что доктрина использует для сопоставления ее с соответствующим полем (используя имя поля)

ListingType.php

    ->add('editId', HiddenType::class, [
      'required' => true,
      'disabled' => true,
      'mapped' => true,
      'attr' => [
        'value' => $options['editId']
      ]
    ])

Я проверил значение текстового поля editId, значение есть, но оно просто не вставляется.

editId

<input type = "hidden" id = "listing_editId" name = "listing[editId]" disabled = "disabled" required = "required" value = "952726647">

Перейдите на disabled => false, потому что отключенные входы не отправляются

Salvatore Q Zeroastro 26.09.2018 22:45

Как выглядит окончательный HTML? Это было бы более полезно для определения причины, по которой он не был отправлен.

miken32 26.09.2018 22:46

@SalvatoreQZeroastro, если бы я это сделал, не смог бы пользователь изменить значение до его отправки?

Dan185 26.09.2018 22:48

Установите disabled => false, потому что в противном случае значение не будет в отправленной форме.

Stef 26.09.2018 22:50

разве это не скрытое поле? Однако вход должен быть readonly и не отключен, чтобы его можно было отправить, пока он не доступен для редактирования.

Salvatore Q Zeroastro 26.09.2018 22:50

Это скрытый ввод, а не текстовое поле. Но это неважно. Они так же могут изменить его независимо от того, отключите вы его или нет. Для обеспечения безопасности не полагайтесь ни на что, исходящее от пользователя.

miken32 26.09.2018 22:51

Вы не можете запретить пользователям изменять отправленные вам значения. Даже если вы отключите ввод в браузере, злоумышленник может просто отредактировать HTML или сделать запрос POST, не посещая предварительно форму. Убедитесь, что значение имеет смысл после того, как вы получите его обратно.

Matt Raines 26.09.2018 22:52
wouldn't the user be able to change the value before it's submitted?: да, точно так же, как они могут изменить скрытый на не скрытый и отключенный на не отключенный и т. д. У вас есть сценарий, который принимает эту форму, они могут отправлять сообщения из любой точки мира, следовательно, необходимо проверить пользователя ввод из форм (и где угодно)
James 08.10.2019 18:47
Стоит ли изучать 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
8
820
0

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