Ik ben bezig met een stukje code waarmee ik een array samenstel vanuit de database. Nu heb ik een stukje code wat opzich prima functioneerd. Alleen het klopt niet voor mijn gevoel, volgens mij kan dit veel efficienter. Heeft er iemand suggesties/tips?
Alvast bedankt;
De data structuur;
> page
--> meta (array)
--> row
----> column
------> content (array)
--> row
----> column
------> content (array)
--> row
----> column
------> content (array)
etc, etc, etc
De php code;
<?php
$page = Page::find($id); // SELECT * FROM "pages" WHERE "id" = $id
$rows = Page::find($id)->rows()->get(); // SELECT * FROM "rows" WHERE "page_id" = $id
$result['meta'] = (array) $page;
foreach ($rows as $row_key => $row_value) {
$result['rows'][$row_key] = (array) $row_value;
$columns = Row::find($row_key)->columns()->get(); // SELECT * FROM "columns" WHERE "row_id" = $row_key
foreach ($columns as $column_key => $column_value) {
$result['rows'][$row_key]['columns'][] = (array) $column_value;
$contents = Column::find($column_key)->contents()->get(); // SELECT * FROM "contents" WHERE "column_id" = $column_key
foreach ($contents as $content_key => $content_value) {
$result['rows'][$row_key]['columns'][$row_key]['content'][] = (array) $content_value;
}
}
}
var_dump($result);
?>
1.436 views