vendredi 16 novembre 2018

Laravel query bulder one to many

i have a table clients and a table client_addresses a client can have many addresses, but only one preferred address

In my table i need to show only the preferred address or if not selected the preferred, show the last address inserted, and when i search on table , i need to filter on this record .

example

client
id  name        
5   Aldo   // 2 address
6   Franco // 4 address
7   Jane   // 0 address
8   Doe    // 1 address

client_addresses
id  address     client_id   preferred
1   1st street  5       true  //Aldo (5) first record inserted but preferred
2   2nd street  5       false
3   3th street  6       false
4   4th street  6       false
5   5th street  6       false
6   6th street  6       false // Franco (6) last address inserted 
7   7th street  8       true  // Doe (8) preferred 

this is my result table (datatable)

client.id   name        address
5       Aldo        1st street
6       Franco      6th street
7       Jane        null
8       Doe         7th street

if i search "1st street", it must show the first record
if i search "2nd,3th,4th,5th street", it should not show any lines
if i search "6th street", it must show the second record
if i search "7th street", it must show the last record

How can i do that with laravel eloquent or query builder?

Thanks



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire