Also, ich habe ein File
Modell, und ich habe ein Dependency
Modell, das wird angeben, ob eine bestimmte File
Instanz von einem anderen abhängig ist. (Man denke Paketverwaltung.) Die dependencies
Tabelle ist sehr einfach:Laravel Modell Beziehung auf assoziativen Tabelle
id PRIMARY
file_id INTEGER UNSIGNED
depends_on_file_id INTEGER UNSIGNED
Die files
Tabelle verwendet auch id
für einen Primärschlüssel.
Aber ich war nicht in der Lage, meinen Kopf um den richtigen Weg zu wickeln, um die Beziehung auf dem Modell aufzubauen. Ich dachte, es wäre:
public function deps()
{
$this->belongsToMany('App\File', 'dependencies', 'file_id', 'id');
}
Aber wenn ich versuche, es zu benutzen:
>>> $f = App\File::find(2);
=> App\File {#706
id: 2,
{redacted irrelevant properties here},
}
>>> $f->deps();
=> null
Nicht eine Sammlung überhaupt zu bekommen. Es gibt eine einzelne Reihe von gesetzten Daten, wobei file_id 2 depends_on_file_id 1
.
Was fehlt mir hier bitte?
Das gibt immer noch eine leere Menge zurück, aber vorläufig arbeite ich daran, indem ich zB '$ d = App \ Dependency :: where ('file_id', 2) -> get(); . Ich schätze die Plausibilitätsprüfung, aber ich habe lange genug mit Modellen angefangen, dass Beziehungen keinen Sinn ergeben. –
Scheint wie die Beziehung falsch eingerichtet ist. Wie ich geschrieben habe, habe ich es nicht getestet. Aber ich würde sagen, du bist auf dem richtigen Weg. – lesssugar