2016-07-06 2 views
0

Мне нужно получить данные, которые принадлежат IdentityController из таблицы базы данных Customer в моем my-account.tpl файле. (Честно говоря, я должен объединить содержание identity.tpl и my-account.tpl на одной странице, но у меня нет решения проблемы.)Как я могу получить доступ к данным DB в файле .tpl, который принадлежит другому контроллеру/модели в prestashop 1.6?

Должен ли я изменить контроллер, или я могу получить доступ к данным таблицы клиентов корыта IdentityController в некотором роде через smarty от my-account.tpl? (если да, то как?)

Любой совет может быть полезным и ценным!

Большое спасибо!

ответ

0

Данные не относятся к контроллеру.

Общее правило состоит в том, что таблицы базы данных, представляющие концептуальные объекты (Заказчик, Заказ, Корзина и т. Д.), Извлекаются и изменяются через их тезки-классы (модель). Пока вы можете построить объект Customer в любом контроллере, вы можете получить доступ к соответствующим данным для этого объекта из базы данных.

Контроллер содержит только логику, которая выполняет определенное действие или группу действий. Чтобы достичь этого, он обычно взаимодействует с одним или несколькими объектами модели, поскольку сам контроллер не хранит никаких собственных данных.

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

В качестве альтернативы, контроллер, возможно, уже установил свойство $this->context->customer, которое содержит уже построенный объект Customer, который вы можете использовать.

Как только вы можете получить доступ к этим данным, вам просто нужно присвоить значения переменным smarty по вашему выбору (через $this->context->smarty->assign()), и вы все настроены использовать их в своем шаблоне.

Смежные вопросы