I work with huge database, with many tables, so I prefered working with DB facade instead of Eloquent models.
I have two tables with one-to-many relationship (although foreign key is not declared):
+-------------+
+-----------+ | orders |
| clients | +-------------+
+-----------+ | order_id |
| client_id |<-------| client_id |
| name | | details |
+-----------+ +-------------+
I would like to achieve the same result as I would do using with()
function:
[
[
'client_id' => 1,
'name' => 'Alfonso',
'orders' => [
[
'order_id' => 32,
'details' => 'Loren Ipsum'
],
[
'order_id' => 34,
'details' => 'Loren Ipsum'
]
]
],
[
'client_id' => 2,
'name' => 'Beatriz',
'orders' => [
[
'order_id' => 15,
'details' => 'Loren Ipsum',
],
[
'order_id' => 19,
'details' => 'Loren Ipsum',
],
]
]
];
I can do it with simple foreach
function, I wonder whether there is some way to use something similar to with()
function although I don't use models.
The basic query looks like this:
$res = DB::table('clientes')
->leftJoin('orders', 'orders.client_id', '=', 'cliends.client_id')
->get()->toArray();
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire