Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- En este primer ejemplo se muestra como obtener los Trips asociados a $countryId, primero voy al modelo Country y de ahí saco trips mediante una relación.
- Como se puede ver en el ´return´, lo que se retorna es la posición trips del objeto Country
- Esta no es la manera correcta, ya que el Modelo base debería ser Trips y no Country.
- */
- $country = Country::where('id', $countryId)
- ->with(['trips' => function ($query) use ($fields) {
- $query->select($fields)->where('cached_is_active', '1')->where('is_active', '1')
- ->where('locale_id', App::getLocale())
- ->get();
- }])
- ->get();
- return $country->trips;
- /*
- En este segundo ejemplo estoy obteniendo un objeto de tipo ´Trip´ apartir del modelo definido en el constructor de la clase y ya que necesito obtener los trips asociados a un país, agrego un ´whereHas´ que me permite hacer una condición mediante un relationship, en este caso con el modelo countryTripRelations
- */
- // $this->model = 'Viventura\Models\Trip'
- $trips = $this->model->select($fields)->where('cached_is_active', '1')->where('is_active', '1')
- ->where('locale_id', App::getLocale())
- ->whereHas('countryTripRelations', function($q) use ($countryId){
- $q->where('country_id', $countryId);
- })
- ->get();
- return $trips;
- /*
- En ambos casos se obtiene el mismo resultado, solo que en el segundo lo estoy haciendo desde el objeto correspondiente y sin la necesidad de usar un join.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement