Как я могу заполнить объект класса данными из цикла? - PullRequest
0 голосов
/ 25 апреля 2019

Как я могу заполнить объект класса данными из цикла?

Мои извинения, если я объясню проблему с неправильными терминами ..

Мне нужно, чтобы мой объект был заполненс числами, которые я восстанавливаю из формы ветки.Затем я хочу, чтобы этот объект был сохранен и очищен.Так просто.

Я не понимаю, как я могу заполнить свой объект, потому что числа, которые я восстанавливаю из ветки, находятся внутри цикла, который находится внутри таблицы.

Заранее спасибо за всевозможные идеи ..

Вот моя веточка:

<form name="order" action="{{ path('edit_book',{'id_book':id_book}) }}" 
method="post">
<table >
{%  for d in pages %}
    <tbody>

    <tr>

        <td>
{{ d.title }}
        </td>


        <td>
             <input name="order_{{ d.idPage }}" size="3" id="{{ d.idPage 
}}" value="{{ d.order }}">
        </td>

    </tr>

{%  endif %}
    </tbody>
{% endfor %}
    <tfoot>
    <tr>

        <td align="right" colspan="3" style="width: 45px;">
            <div style="float: right;">
                    <input type="submit" name="commit" title="Order">
            </div>
        </td>
    </tr>

    </tfoot>
</table>
</form>

Мой контроллер:

/**
 * @Route("/book/edit/id_site/{id_book}", name="edit_book")
 */
public function edit(Request $request, $id_book)
{

    $value=$_POST;
    dump($value); 

    $order = new Page();

    $order->setIdSite($id_book);
    $order->setOrder($value['order_{{ d.idPage }}']);  // this, of course, does not work...

    dump($order); /*die;*/

1 Ответ

0 голосов
/ 26 апреля 2019

Сначала вам нужно переименовать вход, чтобы вы могли математически идентифицировать идентификатор с порядком, например,

<input name="order[{{ d.idPage }}]" size="3" id="page_{{ d.idPage }}" value="{{ d.order }}">

Вход order теперь является массивом, который вы можете зациклить в PHP:

foreach($_POST['order'] as $page_id => $order) {
    $order = new Page(); // <--- you prolly want to fetch an existing page here with $page_id
    $order->setIdSite($id_book);
    $order->setOrder($order);  // this, of course, does not work...
    dump($order); /*die;*/
}
...