Empfehlungen: Erweiterte Suche

(Anfänger-)Probleme mit Beziehungen zwischen Models

Datenbankobjekte strukturieren und validieren

(Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon j-ckruse » Sa 2. Okt 2010, 17:20

Hallo,

ich habe ein kleines Problem mit meinen Models und meinen Beziehungen zwischen Ihnen.

Ich habe eine Tabelle articles (id, article, description), eine Tabelle companies (id, company, description, is_supplier, is_customer) und eine Tabelle articles_suppliers (id, article_id, company_id, valid_from, price).
Ein Artikel kann mehrere Artikel-Lieferanten-Beziehungen haben, also von mehreren Lieferanten bezogen werden.

Mein Model articlessuppliers sieht wie folgt aus:
Code: Alles auswählen
    class ArticlesSuppliers extends AppModel {
        var $name = 'ArticlesSuppliers';
        var $belongsTo = array('Article' =>
                         array('className'    => 'Article',
                                 'foreignKey'   => 'article_id'
                         )
                 );
    }


Mein Model article habe ich wie folgt aufgebaut:
Code: Alles auswählen
<?php
    class Article extends AppModel {
        var $name = 'Article';

        var $hasMany = array(
            'ArticlesSuppliers' => array(
                'className' => 'ArticlesSuppliers',
                'foreignKey' => 'article_id',
                'dependent' => true
            )
        );
    }
?>


Um jetzt erst mal die Verbindung zu testen, habe ich meinen Controller articlessuppliers_controller wie folgt aufgebaut:
Code: Alles auswählen
<?php
    class ArticlesSuppliersController extends AppController {
        var $name = 'ArticlesSuppliers';
          var $scaffold;

    }
?>


Jedoch wird jetzt beim Aufruf z.b. der Edit-View die Auswahlliste nicht mit meinen Artikeln gefüllt.
Übersehe ich etwas? Muss ich evtl. eine andere Beziehung zwischen den Models wählen?

Ich hoffe ihr könnt mir helfen.

Gruß,
Jens
j-ckruse
 
Beiträge: 17
Registriert: So 19. Sep 2010, 09:10

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon mbrod » Sa 2. Okt 2010, 21:13

Die Beziehungen sehen für mich korrekt aus. Ich vermute, dass scaffolding nicht die entsprechende Datenbank Abfrage macht, um die Daten für die Artikelliste zur Verfügung zu stellen. Scaffolding ist ja auch nur dazu gedacht die nötigsten Funktionen bereit zu stellen.
Besser: mit der Konsole die Models, Views und Controllers backen. Davon ausgehend kann man dann alles nach seinen Wünschen verfeinern.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon j-ckruse » So 3. Okt 2010, 07:30

Guten Morgen,

vielen Dank für deine Antwort.
Die Konsole funktioniert bei mir unter Windows 7 leider nicht. Hatte dazu schon einen Thread aufgemacht.

Dann werde ich mir die Seiten heute mal selber aufbauen und testen. Bisher hatte ich via scaffolding immer ein Ergebnis bekommen, daher war ich hier ein wenig irritiert, ob der Fehler evtl. an meiner Umsetzung liegt.

Gruß,
Jens
j-ckruse
 
Beiträge: 17
Registriert: So 19. Sep 2010, 09:10

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon mbrod » So 3. Okt 2010, 08:25

Die Konsole funktioniert bei mir unter Windows 7 leider nicht.

Da kann ich leider nicht helfen, da ich mit dem Mac arbeite. Die Konsole war für mich als Anfänger sehr hilfreich. Es wäre gut dies irgendwie ans laufen zu bringen.

Als Hilfestellung kann ich einen Auszug aus einem Projekt von mir geben. Model Membership belongsTo Person und Partnership. Auszug aus MembershipsController:
Code: Alles auswählen
    function add() {
        if (!empty($this->data)) {
            $this->Membership->create();
            if ($this->Membership->save($this->data)) {
                $this->Session->setFlash(__('The membership has been saved', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('The membership could not be saved. Please, try again.', true));
            }
        }
        $people = $this->Membership->Person->find('list');
        $partnerships = $this->Membership->Partnership->find('list');
        $this->set(compact('people', 'partnerships'));
    }
 

Man beachte wie CakePHP auch die irreguläre Pluralbildung Person->People beherscht.
Analog zu deinen Models müssten die beiden letzten Zeilen wohl so lauten:
Code: Alles auswählen
$articles=$this->ArticlesSupplier->Article->find('list');
$this->set(compact('articles'));
damit die Auswahlliste gefüllt wird.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon j-ckruse » So 3. Okt 2010, 09:37

Hi,

vielen Dank.

Gruß,
Jens
j-ckruse
 
Beiträge: 17
Registriert: So 19. Sep 2010, 09:10

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon euromark » So 3. Okt 2010, 19:03

warum sollte die konsole unter windows 7 nich gehen?
is ne sache von 2 minuten, dann läuft sie - garantiert :)
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon j-ckruse » So 3. Okt 2010, 19:48

Ok, ich habe mich verkehrt ausgedrückt, da ich es in einem anderen Thread geschrieben habe...
Die Konsole kann ich starten, aber ich kann den Working Path nicht ändern.
Siehe diesen Thread: http://www.cakephp-forum.com/installation-und-konfiguration/console-working-path-unter-windows-7-t738.html
Und da ich den Working Path nicht ändern kann, habe ich an allen Stellen die Probleme, dass er meine Konfiguration nicht kennt...

Hast du die Konsole unter Windows 7 am Laufen?
j-ckruse
 
Beiträge: 17
Registriert: So 19. Sep 2010, 09:10

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon euromark » So 3. Okt 2010, 20:54

wie gesagt, 2minuten :)

naja, so wie das klingt bist du nich ins APP folder navigiert
erst DA kannst du "cake ..." ausführen

und dann muss man auch keine "working paths" ändern, oder was auch immer du damit meinst ändern zu müssen
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon j-ckruse » Mo 4. Okt 2010, 06:45

Moin,

danke für den Hinweis. Wenn ich zunächst in das Verzeichnis wechsle, funktioniert es.

Komisch nur, das des öfteren beschrieben wird, das ich Cake an jeder Stelle aufrufen kann und dann entsprechend den Working Path umstellen kann... Egal.

Gruß und Danke,
Jens
j-ckruse
 
Beiträge: 17
Registriert: So 19. Sep 2010, 09:10

Re: (Anfänger-)Probleme mit Beziehungen zwischen Models

Beitragvon euromark » Mo 4. Okt 2010, 09:40

damit stellst du den working path (implizit) automatisch um
so kann ich z.b. meine shell skripte auch für nicht-cake-projekte verwenden

Tipp: http://www.dereuromark.de/2010/10/03/console-for-cakephp/
Lies dir den "Hot Tip" durch für Windows
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Nächste

Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron