Hi,
On 14 Jan., 22:25, Markus Grobbauer <[EMAIL PROTECTED]>
wrote:
> das mit dem pagescontroller haut net ganz hin. Ich habs einerseits mit
> hinzufügen der function und auch mit der $uses variabe zur bestehende
> pages_controller datei (cake/libs/controller/) probiert und auch einen
> neuen controller angelegt im app verzeichnis welcher so aussieht:
>
> class PagesController extends AppController{
>
> //GROMENT: adding Product to this array enables the usage of
> //to use the products_controller in home.thtml
> var $uses = array('Product');
>
> //GROMENT: makes product instance in home.thtml available
> function home(){
> $this->set('products', $this->findAll());
> $this->set('female_products',
> $this->Product->findAll(array('sex'
> => 'female'), null, "Product.id DESC"));
> $this->set('male_products',
> $this->Product->findAll(array('sex' =>
> 'male'), null, "Product.id DESC"));
> }
>
> }
>
> aber ich kann in home.thtml auf keine der drei arrays zugreifen:
> Notice: Undefined variable: products in...
>
> Jemand eine Lösung?
Zuerst einmal stimmt diese Zeile hier nicht:
$this->set('products', $this->findAll());
Die müsste
$this->set('products', $this->Product->findAll());
heißen. Versuche doch mal das hier im Controller um zu sehen, ob
überhaupt etwas als Ergebnis herauskommt:
$products = $this->Product->findAll();
pr($products);
exit;
Wenn da nämlich ein leeres Array zurück kommt, wird die Variable auch
nicht gesetzt und wird somit im View nicht angeboten - Details, ob da
jetzt null, false oder ein leeres Array herauskommt, musst Du mal
selbst nachschauen und hängt auch von der verwendeten CakePHP-Version
ab.
Wenn Da kein Ergebnis bei raus kommt, stell in /app/config/core.php
DEBUG mal auf 2 um die SQL-Anweisungen angezeigt zu bekommen. Evtl.
musst Du dafür das exit() weg lassen. Evtl. siehst Du nun einen SQL-
Fehler, oder kannst sonstwie an den SQL-Anweisungen sehen, was da
schief läuft.
Hast Du eine Tabelle in der Datenbank, die "products" heißt und als
Primärschlüssel ein Feld "id" hat?
Falls obige Ausgabe etwas ausgibt, liegt das Problem evtl. ganz wo
anders. Denn irgendwie klappt dann die Übergabe vom Controller an das
View nicht.
Oder es wird eine ganz andere Route aufgerufen. Evtl. gibt es da eine
Standardroute, die hier ausgeführt wird und deshalb diese Controller-
Methode gar nicht aufgerufen wird.
Wenn Du in /app/config/routes.php diese Zeile hier stehen hast:
Router::connect('/', array('controller' => 'pages', 'action' =>
'display', 'home'));
schreibe folgende Zeile *über* die bereits vorhandene:
Router::connect('/home/', array('controller' => 'pages', 'action' =>
'home'));
Mit http://<pfad_zur_app>/home/ solltest Du nun auch im View auf die
Variablen zu greifen können.
Sorry für den Crashkurs, aber ich habe ja keine Ahnung, wie viel aus
dem Cake Manual Du schon durchgearbeitet hast.
Viele Grüße,
Dirk
--~--~---------~--~----~------------~-------~--~----~
Sie erhalten diese Nachricht, weil Sie Mitglied sind von Google Groups-Gruppe
"CakePHP-de für deutsche CakePHP Entwickler".
Für das Erstellen von Beiträgen in dieser Gruppe senden Sie eine E-Mail
an [email protected]
Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an [EMAIL
PROTECTED]
Weitere Optionen finden Sie in dieser Gruppe unter
http://groups.google.com/group/cakephp-de?hl=de
-~----------~----~----~----~------~----~------~--~---