Case
Projects
id | Name
House types
id | Name | Project_id
Types
id | Name | House_type_id
Houses
id | Building_nr | Type_id
All the houses (/apartments) have a relationship with type (XL apartment, small apartment). A type has a relation with house types (villa, detached house) and a house type has a relation with a project.
So three one-to-many relationships are being used here.
I want to order the houses based on the building numbers.
How I am currently fetching the data from my database:
$project = Project::whereSlug($slug)->with(array('brokers', 'houseTypes.types.houses' => function($query) {
$query->orderBy('bnr');
}))->first();
But this doesn't result in the last relationship (houses) being ordered by their bnr(building number).
How I load the data into my view:
@foreach($project->houseTypes as $houseTypes)
@foreach($houseTypes->types as $types)
@foreach($types->houses->sortBy('bnr') as $house)
<tr class="table-row">
<td></td>
<td></td>
<td></td>
<td>€</td>
<td>m<sup>2</sup></td>
<td>m<sup>2</sup></td>
<td></td>
</tr>
@endforeach
@endforeach
@endforeach
What is the most efficient/best way to get the result I am looking for?
Edit:
For now I have another solution to use javascript for sorting the table based on the building number (table with rows). Out of interest, is the case still solvable using correct queries?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire