TransWikia.com

Laravel queryScope relacionados

Stack Overflow en español Asked by maraet on December 18, 2021

Estoy necesitando de su ayuda para realizar un buscador en laravel relacionado.

Tengo una vista con un formulario donde el usuario puede seleccionar las categorías y escribir una ubicación.

{{ Form::open(['route' => 'busquedas', 'method' => 'get', 'class' => 'form-inline'])}}

                <select id="categoria" name="categoria" class="form-control">
                    {{-- <option value="" disabled>Seleccionar</option> --}}
                    @foreach($categorias as $index => $categoria)
                        <option value="{{ $categoria->nombre_categoria }}">
                            {{ $categoria->nombre_categoria }}
                        </option>
                    @endforeach
                </select>

                <div class="form-group">
                    {{ Form::text('ubicacion', null, ['class' => 'form-control', 'placeholder' => '¿Que ubicación está buscando? ']) }}
                </div>

                <div class="form-group">
                    <button type="submit" class="btn btn-default question-btn">
                        <span class="fa fa-search">Buscar</span>
                    </button>
                </div>
            
            {{ Form::close() }}

En el controlador de forma separada obtengo lo que el usuario está buscando.

 $categoriaObtenida = Category::with('properties')->where('nombre_categoria', $categoria)->get();

    $ubicacionesObtenida = Ubicacion::with('properties')
        ->ubicacion($ubicacion)
        ->get();

    $areasObtenidas = Area::with('properties')
        ->area($ubicacion)
        ->get();

Pero lo que necesito es un poco más complicado, es tener todas las PROPIEDADES en base a la categoría seleccionada y la ubicación escrita por el usuario.

En el modelo tengo las siguientes relaciones:

MODELO PROPIEDADES y RELACIONES

public function ubicacion(){
    return $this->hasMany(Ubicacion::class);
}


public function category(){
        return $this->belongsTo(Category::class);
    }

MODELO UBICACION y RELACIONES

public function properties(){
    return $this->belongsToMany(Property::class);
}

public function area(){
    //hasOne: una ubicacion tiene un area
    return $this->hasOne(Area::class);
}

MODELO CATEGORIA y RELACIONES

public function properties(){
    return $this->hasMany(Property::class);
}

Me podrían brindar una mano por favor. Es muy importante para mi. Muchas gracias

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP