Правильный способ сделать простой GET со ссылкой Params в Zend Framework? - PullRequest
0 голосов
/ 28 января 2010

В моем приложении у меня есть:

  • таблица хранения заказов клиентов и
  • таблица хранения записей заказов

, поэтому в основномотношение один ко многим между таблицей заказов и таблицей записей заказов (должно быть довольно общей структурой).

У меня есть страница, на которой отображаются все заказы клиента (но не записи).Эта часть проста, в моем OrdersController у меня есть viewAllOrdersAction, который запрашивает БД и отправляет результаты в представление для рендеринга.

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

Полагаю, мне нужно будет добавить viewOrderAction к OrdersController, который снова запрашивает БД и отправляет результаты в другое представление.

У меня есть вопрос, касающийся отправки orderId со страницы viewAllOrders на viewOrderAction и его получения там.

Как правильно это сделать?

  1. Должен ли я сделать очень простую форму со скрытым полем orderId и ссылкой, которая отправляет?это кажется излишним ...
  2. Или мне просто составить URL ссылки с "? orderId = 12345"?я бы предположил, что это был бы лучший способ, но как мне создать URL с параметром GET, используя помощник URL Zend_View (т. е. $ this-> url (...) в представлении)?

Спасибо!

1 Ответ

1 голос
/ 28 января 2010

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

<?php echo $this->url(array('order_id' => $this->order->getId()), $viewOrderRouteName); ?>

Теперь, если у вас не было именованного маршрута с модулем, контроллером и скоростью действия, вы могли бы:

<?php echo $this->url(array(
    'order_id' => $this->order->getId()
    'module' => 'customer',
    'controller' => 'order',
    'action' => 'viewOrder'
), 'default' ); ?>

При условии, что у вас включен маршрут по умолчанию. Обратите внимание, что это просто выводит URL, а не полный символ tag, поэтому используйте его в качестве атрибута href или используйте sprintf для составления тега ... Я думаю, что есть универсальный помощник по тегам html, так что вы также можете его использовать.

Теперь, если вы не хотите показывать свои идентификаторы заказов в URL-адресе, вы можете использовать какие-то другие параметры для выбора самого заказа (хотя для этого потребуется запрос на соединение в контроллере заказов вашего представления), например, username && order дата или что вы схожи с тем, как вы можете видеть постоянную ссылку блога в качестве даты && заголовок "slug".

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