Domanda

Devo accedere alla mia sessione e in base alla proprietà della sessione ho bisogno di prendere cose dal database per utilizzare come opzioni nel mio discesa.

$ _Session è:

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

Ho bisogno di prendere l'hotel A da selezionato, quindi accedere a tutti gli account sotto l'hotel A dal database:

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

Ho bisogno di ID 1 e 3 perché il mio hotel_id è 1 nel contesto di:

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

Ecco il mio codice di query / sessione:

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

Ho questo codice nella mia pagina del modulo, ma ora devo spostarlo nel mio modello.

È stato utile?

Soluzione

Allora, dove è il tuo problema?

fare una query corretta sul database per ottenere tali conti.

Crea un allineamento corretto dal risultato. (Id => Titolo)

È possibile impostare le opzioni su elemento già esistente:

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

È possibile creare un metodo nella classe forma che avrebbe accettato DB obj, Sessione obj ed eseguire le azioni necessarie per il carico e impostare le opzioni.


  

modello, che è in applicazione / modules / pippo / modelli / DBTable / sociali, il nome della classe del modello è Model_DbTable_Social e il modulo è foo. Getta Fatal error:

La classe db-tavolo, probabilmente deve essere denominato:

Foo_Model_DbTable_Social

E Application.ini dovrebbe contenere:

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

Class 'Model_DbTable_Social' quando provo a invocarlo nella mia forma. O è in questo modo che si parla più facile?

Si tratta di una buona pratica di chiedere tali risorse in __construct come chelmertz detto. Ecco un bel discorso sul argomento correlato: http://www.youtube.com/watch?v=-FRm3VPhseI

Si potrebbe desiderare di leggere la mia domanda su "dove collegare le forme ai modelli": zend-framework e pattern MVC: che tipo di strato dovrebbe collegare i dati tra modelli e forme ? Non troppo molte soluzioni anche se

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top