Symfony - доступность объекта в Компоненте - PullRequest
0 голосов
/ 17 февраля 2011

Я почти уверен, что это мой слабый ум, который не может справиться с одновременным изучением языка (PHP) и фреймворка (Symfony), но ... У меня есть небольшой камень преткновения, который я хотел бы преодолеть. Я хватаю некоторые Объекты Доктрины в действии - ничего особенного, довольно просто. Затем я использую шаблон для этого действия, чтобы отобразить свойства объекта - опять ничего необычного.

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

То, что я хотел бы сделать, это поделиться Объектом, который я создал в действии, с Компонентом - какой самый простой способ сделать это? может быть, хранить объект в отдельном классе и ссылаться на него из обоих (т. е. какой-то подход одноэлементного шаблона)? пожалуйста, помогите!

1 Ответ

0 голосов
/ 17 февраля 2011

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

Сначала вы создаете шаблон executeShow и ashowSuccess.php, который может выглядеть примерно так:

Действие:

public function executeShow(sfWebRequest $request)
{//the session loggedin user, suppose he's logged in
  $this->user = $this->getUser();
}

шаблон:

[..blablabla...htmlcode]
<?php echo $user ?>
<?php include_partial('module/partial_name',array('user',$user))?>
[..blablabla...morehtmlcode]

Теперь, часть с именем part_name, расположенная в шаблоне forlder модуля «module», будет обнаруживать установленную переменную $ user, то есть второй аргумент include_partial для, говоря: «Определите переменную с именем user со значением это $ user ".

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

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