Question

Je dois accéder à ma session et basée sur la propriété de la session que je dois saisir des choses de la base de données à utiliser comme options dans ma liste déroulante.

$ _SESSION est:

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

Je dois saisir Hôtel A partir sélectionné, puis accéder à tous les comptes en Hôtel A partir de la base de données:

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

J'ai besoin ids 1 et 3 parce que mon hotel_id est 1 dans le contexte de:

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

Voici mon code saisissant requête / session:

$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;

J'ai ce code dans ma page de formulaire, mais je dois le déplacer dans mon modèle maintenant.

Était-ce utile?

La solution

Alors, où est votre problème?

Faire une requête appropriée sur la base de données pour obtenir ces comptes.

Faire un tableau correct du résultat. (Id => Titre)

Vous pouvez définir des options sur l'élément déjà existant:

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

Vous pouvez créer une méthode dans votre classe de formulaire qui accepte DB obj, session obj et d'effectuer les actions nécessaires pour charger et définir ces options.


  

modèle, qui est le nom de la classe modèle application / modules / foo / modèles / DbTable / Social, est Model_DbTable_Social et le module est foo. Lancers Erreur fatale:

Votre classe db table devrait probablement être nommé:

Foo_Model_DbTable_Social

Et application.ini doit contenir:

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

Class « Model_DbTable_Social » lorsque je tente de l'invoquer dans ma forme. Ou est de cette façon que vous mentionnez plus facile?

Il est une bonne pratique de demander ces ressources __construct comme chelmertz dit. Voici une conversation agréable sur le sujet connexe: http://www.youtube.com/watch?v=-FRm3VPhseI

Vous pouvez lire ma question sur « où connecter les formes aux modèles »: doctrine zend-cadre, et le modèle mvc: quel type de couche doit relier les données entre les modèles et les formulaires ? Pas trop de solutions que

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top