Ich arbeite an einem Setup, bei dem ich nicht sicher bin, wie man richtige Assoziationen Setup bekommen.CakePHP HABTM Assoziationen
CakePHP 1.3
ich so etwas wie dies denke, korrigieren Sie mich bitte, wenn ich falsch bin!
Datenbank:
CREATE TABLE IF NOT EXISTS `trips` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`user_id` bigint(20) NOT NULL,
`location_to` bigint(20) NOT NULL,
`location_from` bigint(20) NOT NULL,
`published` int(1) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ;
CREATE TABLE IF NOT EXISTS `locations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `locations_from` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`trip_id` bigint(20) NOT NULL,
`location_id` bigint(20) NOT NULL
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `locations_to` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`trip_id` bigint(20) NOT NULL,
`location_id` bigint(20) NOT NULL
PRIMARY KEY (`id`)
);
Aber wie die Modelle TRIP einzurichten und LOCATION für die korrekte HABTM?
Trips belongsTo USER
Trips hat von Ort ein und location => Von New York, um Miami
Standorte => New York, Miami +++
Verwenden belongsTo og hasAndBelongsToMany? Mit mehreren Bezeichnern zu arbeiten, ist für mich eine Premiere.
Jeder, der etwas Hilfe geben kann? Vielen Dank!
-Tom
Hallo .. Dies ist ähnlich zu dem, was ich dachte, aber mein Setup wird auf basieren, USER von Ort zu Ort bei TIMEDATE wird (nicht mit Zeit- und Datumsfelder stören , wird eingefügt wenn ich richtig richtig komme). Wenn möglich, mehr Ort einfügen, wie, von NY nach Miami, vorbei an DENVER. Wie du sagst, können mehrere Standorte haben. – Tom
OK, dann war das ursprüngliche Setup korrekt, ich würde nur die Tabellennamen in "localtos" und "locationfroms" ändern und die Fremdschlüssel-IDs "localto_id" und "locationfrom_id" haben, damit sie mit den Namenskonventionen von CakePHP übereinstimmen. – Suman
Und hasAndBelongsToMany verwenden? Aber was in welchem Modell? das ist die Frage;) Danke für deine Zeit! – Tom