Вопрос

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

$ _Session:

[sess_name] => Array(
   [properties] => Array(
      1=> Hotel A,
      2=> Hotel B
   ),
   [selected] => 1
)

Мне нужно схватить отель A от выбранного, а затем получить доступ к всем аккаунтам в отеле A из базы данных:

id  title                       hotel_id
------------------------------
1    Hotel A Twitter Account     1
2    Hotel B Facebook Account    2
3    Hotel A Facebook Account    1

Мне нужны IDS 1 и 3, потому что My Hotel_ID 1 в контексте:

$this->addElement(  'select', 'account', array(
  'multioptions' => $NEED_IT_HERE
));

Вот мой запрос / сеанс, схваченный код:

$cs = new Zend_Session_Namespace( SESS_NAME );
$model = new Model_DbTable_Social;
$s = "
    SELECT social_accounts.*
    FROM social_accounts
    LEFT JOIN social_media_outlets ON social_media_outlets.id = social_accounts.property
    WHERE social_accounts.property=".(int)$cs->selectedclient;

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

Это было полезно?

Решение

Так где твоя проблема?

Сделайте правильный запрос в вашей базе данных, чтобы получить эти учетные записи.

Сделайте правильный массив из результата. (ID => Название)

Вы можете установить параметры на уже существующем элементе:

$element = $form->getElement('account');
$element->setMultiOption( $option_array );

Вы можете создать метод в вашем классе форм, который будет принимать DB OBJ, сеанс OBJ и выполнять действия, необходимые для загрузки и установки этих опций.


Модель, которая находится в приложении / модулях / FOO / MODIONS / DBTABLE / SOUSIC, название класса модели - model_dbtable_social и модуль foo. Бросает фатальную ошибку:

Ваш класс DB-таблица, вероятно, должен быть назван:

Foo_Model_DbTable_Social

И Application.ini должен содержать:

resources.modules[] = 
; (It is autoloader for modules)

Класс 'model_dbtable_social', когда я пытаюсь вызовать его в мою форму. Или такой способ, который вы упоминаете проще?

Это хорошая практика, чтобы попросить эти ресурсы в __construct, как сказал Челмртц. Вот приятный разговор о связанной теме:http://www.youtube.com/watch?v=-frm3vphsei.

Возможно, вы захотите прочитать мой вопрос на «Где подключить формы к моделям»:Доктрина Zend-Framework, и шаблон MVC: какой слой должен подключать данные между моделями и формами?Не слишком много решений, хотя

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top