Frage

Ich brauche meine Sitzung zugreifen und auf der Grundlage der Sitzungseigenschaft ich aus der Datenbank Verwendung als Optionen in meinem Dropdown zu greifen Sachen benötigen.

$ _ SESSION ist:

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

Ich brauche Hotel A greifen, ausgewählt aus und greifen dann alle Konten unter Hotel A aus der Datenbank:

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

Ich brauche IDs 1 und 3, weil mein hotel_id 1 im Rahmen der lautet:

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

Hier ist meine Abfrage / session Grabbing Code:

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

Ich habe diesen Code in meiner Form Seite, aber ich brauche es in mein Modell jetzt zu bewegen.

War es hilfreich?

Lösung

Also, wo ist dein Problem?

Erstellen Sie eine korrekte Abfrage der Datenbank diese Konten zu erhalten.

Erstellen Sie eine richtige Anordnung aus dem Ergebnis. (Id => Titel)

Sie können Optionen auf bereits vorhandenes Element gesetzt:

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

Sie können eine Methode in der Formularklasse schaffen, die DB akzeptieren würde obj, Session obj und führen Sie die Aktionen Last benötigt und diese Optionen festgelegt.


  

Modell, das in der Anwendung ist / modules / foo / models / DbTable / Sozial, die Modellklasse Name ist Model_DbTable_Social und das Modul ist foo. Wirft Fatal error:

Ihre db-Tabellenklasse wahrscheinlich genannt werden sollte:

Foo_Model_DbTable_Social

Und application.ini sollte enthalten:

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

Class 'Model_DbTable_Social', wenn ich versuche, es in meiner Form aufzurufen. Oder ist auf diese Weise, die Sie leichter erwähnen?

Es ist eine gute Praxis für diese Ressourcen in __construct zu fragen, wie gesagt chelmertz. Hier ist ein nettes Gespräch zu verwandtem Thema: http://www.youtube.com/watch?v=-FRm3VPhseI

Sie könnten meine Frage lesen wollen „wo Formulare Modelle verbinden“: zend-framework Lehre und MVC-Muster: was für Schicht sollte Daten zwischen Modellen und Formen verbindet ? Nicht zu viele Lösungen obwohl

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top