Empfehlungen: Erweiterte Suche

Gelöst: Daten an Element übergeben

Ausgabedaten formatieren und darstellen

Re: Daten an Element übergeben

Beitragvon euromark » Mi 13. Apr 2011, 21:49

ahh^^ sag das doch gleich
du musst, wenn du das element überall verwendest, das ganze schon im beforeRender() callback des APPcontrollers machen!
ansonsten ists ja logischerweise nur in dem einen speziellen controller verfügbar...
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Daten an Element übergeben

Beitragvon enigmartin » Do 14. Apr 2011, 08:40

Mmh, danke aber das hilft mir auch nicht ganz weiter.

euromark hat geschrieben:ahh^^ sag das doch gleich

Wenn ich das ganze über eine bestimmte URL aufrufen wollen würde, dann bräuchte ich kein Element zu rendern, dann würde ich einen einfachen view erstellen. Ich dachte das wäre bei Elementen selbstredent das diese hier und da mal verwendet werden könnten und die Daten dann auch bereitstehen müssen.

euromark hat geschrieben:du musst, wenn du das element überall verwendest, das ganze schon im beforeRender() callback des APPcontrollers machen!

Ich hab im AppController jetzt folgendes:

Code: Alles auswählen

// ...
function beforeRender() {
    $this->set( 'info', $this->_info() );
}
// ...
function _info()
{
    $user = $this->User->findById( $this->Auth->user('id') );
    $this->set('user', $user);
    $this->render('/elements/zellen/menue-user');
}
// ...
 

Problem dabei ist aber, wie komme ich jetzt an die Benutzerdaten heran? Ich hab es mit var $uses = array('User'); versucht aber klappt nicht recht. Könntest du mir ein Beispiel geben, wie du dir das Vorstellst?

euromark hat geschrieben:ansonsten ists ja logischerweise nur in dem einen speziellen controller verfügbar...

Mmh, so logisch und selbstverständlich ist das für mich gar nicht.
Benutzeravatar
enigmartin
 
Beiträge: 40
Registriert: So 27. Mär 2011, 10:42
CakePHP-Version: 1.3.8
OS: Windows 7

Re: Daten an Element übergeben

Beitragvon euromark » Do 14. Apr 2011, 09:02

$this->User = ClassRegistry::init('User');
$user = $this->User->find();

und lass das render weg. das hat da nix zu suchen.
das macht man dann direkt im view an der richtigen stelle.


naja, nich unbedingt...
man kann auch elemente in views benutzen, die zu bestimmten actions gehören (2-3 z.b.)
kommt oft vor.
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Daten an Element übergeben

Beitragvon enigmartin » Fr 15. Apr 2011, 19:10

Alles klärchen, vielen Dank, das hat nun geklappt und sieht wie folgt aus:

app_controller.php
Code: Alles auswählen
<?php
class AppController extends Controller
{
    // ...
    function beforeFilter() {
        // ...
        $this->set( 'info', $this->_info() );
        // ...
    }
   
    function _info() {
        if( $this->Auth->user() )
        {
            $this->User = ClassRegistry::init('User');
            return $this->User->findById( $this->Auth->user('id') );
        }
    }
    // ...
}
?>


Das ganze ist nun überall über die Variable $info aufrufbar.
Benutzeravatar
enigmartin
 
Beiträge: 40
Registriert: So 27. Mär 2011, 10:42
CakePHP-Version: 1.3.8
OS: Windows 7

Vorherige

Zurück zu Views

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast