Symfony - добавлять элементы и отображать таблицу на одной странице - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть два вызова API, и я хочу реализовать их в одном.Независимо от того, как я пытаюсь, он отображает ошибку

Переменная «playTicket» не существует.

Мой вызов сначала создает форму, а после нажатия кнопки «Добавить» я хочу заполнить таблицуэто ниже этой формы на той же странице ..

Мои API-вызовы ..

public function playTicketsAddAction(Request $request, $id)
{

    $form = $this->createFormBuilder()
            ->add('play', TextType::class, array('label' => 'Play', 'attr' => ['class' => 'form-control']))
        ->add('title', TextType::class, array('label' => 'Title', 'attr' => ['class' => 'form-control']))
        ->add('price', TextType::class, array('label' => 'Price', 'attr' => ['class' => 'form-control']))
        ->add('amount', TextType::class, array('label' => 'Amount', 'attr' => ['class' => 'form-control']))
        ->add('validFrom', DateType::class, array('label' => 'Valid From', 'attr' => ['class' => 'form-control']))
        ->add('validTo', DateType::class, array('label' => 'Valid To', 'attr' => ['class' => 'form-control']))
        ->add('save', SubmitType::class, array('label' => 'Add', 'attr' => ['class' => 'btn btn-primary pull-right action-save']))
        ->getForm();


    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {

        $data = $form->getData();
        $play = $data['play'];
        $title = $data['title'];
        $price = $data['price'];
        $amount = $data['amount'];
        $validFrom = $data['validFrom'];
        $validTo = $data['validTo'];

        $this->container->get('plays')->addNewPlayTicket($play, $title, $price, $amount, $validFrom, $validTo);
    }

    $this->addFlash('info', 'Ticket for this play was successfully <a href="/" class="alert-link">added</a>!');

    return $this->render('@AdminTemplates/pages/manage-tickets.html.twig', array(
        'form' => $form->createView(),
    ));
}

и

    public function TicketsListAction()
{
    $query = $this->getDoctrine()
        ->getRepository('AppBundle:playTickets')
        ->findAll();

    $build['playTicket'] = $query;

    return $this->render('@AdminTemplates/pages/seat-number-list.html.twig', $build);
}

и вот мой вид веточки

 <div class="card-body">
                    {{ form_start(form, {'method': 'POST'}) }}
                    <div class="row">
                        <div class="col-md-12">
                            <div class="form-group">
                                {{ form_row(form.play) }}
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <div class="form-group">
                                {{ form_row(form.title) }}
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                {{ form_row(form.price) }}
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                {{ form_row(form.amount) }}
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                {{ form_row(form.validFrom) }}
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                {{ form_row(form.validTo) }}
                            </div>
                        </div>
                    </div>
                    {{ form_end(form) }}
                </div>
            </div>
        </div>
    </div>
</div>
<div class="card-body">
    <div class="table-responsive">
        <table class="table">
            <thead class=" text-primary">
            <th>ID</th>
            <th>Play Name</th>
            <th>Title</th>
            <th>Price</th>
            <th>Amount</th>
            <th>Valid From</th>
            <th>Valid To</th>
            <th>Actions</th>
            </thead>
            {% for p in playTicket %}
                <tbody>
                <tr>
                <tr>
                    <td>{{ p.id }}</td>
                    <td>{{ p.playName }}</td>
                    <td>{{ p.theaterName }}</td>
                    <td>{{ p.validFrom|date("m/d/Y") }}</td>
                    <td>{{ p.validTo|date("m/d/Y") }}</td>
                    <td class="text-primary">{{ p.status }}</td>
                    <td class="td-actions text-left">
                        <a href="" rel="tooltip" title="Edit" class="btn btn-white btn-link btn-sm">
                            <i class="material-icons">edit</i>
                        </a>
                        <a href="" data-toggle="confirmation" data-message="Are you sure to delete this item?" rel="tooltip" title="Remove" class="btn btn-white btn-link btn-sm">
                            <i class="material-icons">delete</i>
                        </a>
                    </td>
                </tr>
                </tbody>
            {% endfor %}
        </table>
    </div>
</div>

Я хочу, чтобы все было так, без использования ajax или другого, потому что я еще не освоил эту часть.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...