Die Ausgangsstruktur eines ORM -Modells für Daten aus einer anderen Abfrage effizient wiederverwenden (PHP ActivereCord
Posted: 16 Apr 2025, 08:17
Ich arbeite mit einem PHP -Framework, das ein ActivereCord ORM verwendet (wie yii -Framework oder ähnliches). Ich habe ein Szenario, in dem ich Daten aus einem oder mehreren Tabellen abfragen muss (, TabelleB ) und präsentieren diese Daten in einer API -Antwort oder -ansicht. Die ideale Struktur für diese Ausgabe richtet sich jedoch an die Felddefinitionen eines bestimmten Modells (), das nicht direkt den Tabellen, die ich abfrage, nicht direkt zugeordnet ist. Ich möchte diese vorhandene Struktur nutzen, ohne die Daten manuell umzugestalten, nachdem sie sie mit einer anderen Abfrage abgeholt haben. KombiniertModel ? Php: < /p>
Wenn ich Ergebnisse mit $ query-> all () oder mit einem DataProvider abfalle, hoffe ich, dass die Ausgabe gemäß den Feldern von CombinedModels () strukturiert wird. Die Ausgangsstruktur eines Modells für Daten, die durch eine andere Abfrage abgerufen wurden?>
Code: Select all
TableA
Code: Select all
CombinedModel
Code: Select all
$subQuery = TableA::find()
->select([
'a_id' => 'table_a.id',
'b_info' => 'table_b.info',
// ... more required fields
])
->joinWith(['tableB'], true, 'INNER JOIN');
$query = CombinedModel::find()
->from(['combined_data' => $subQuery])
->joinWith(['tableA' => function ($q) {
$q->on(['tableA.id' => 'combined_data.a_id']);
}], true, 'INNER JOIN');