Ayuda este configo no funciona

  • Autor Autor eswal200
  • Fecha de inicio Fecha de inicio
eswal200

eswal200

Préstamo
Zeta
Verificación en dos pasos activada
Verificado por Whatsapp
Hola gente.

tengo un código donde si se deja bocio un campo de busqueda, por defecto se listen los usuarios del tipo "freelancer" pero se están listando todos.

aquí el código de laravel:

PHP:
        if($request->type == 'freelancer'){
            $type = 'freelancer';
            $keyword = $request->keyword;
            $rating = $request->rating;

            $freelancers = UserProfile::query();

            if($request->keyword != null){
                $user_ids = User::where('user_type', 'freelancer')->where('name', 'like', '%'.$keyword.'%')->pluck('id');
                $freelancers = $freelancers->whereIn('user_id', $user_ids);
            }

            if($request->rating != null){
                if ($rating == "4+") {
                    $freelancers = $freelancers->where('rating', '>', 4);
                }
                else {
                    $freelancers = $freelancers->whereIn('rating', explode('-', $rating));
                }
            }

            $total = count($freelancers->get());
            $freelancers = $freelancers->paginate(8)->appends($request->query());
            return view('frontend.default.freelancers-listing', compact('freelancers', 'total', 'keyword', 'type', 'rating'));


aqui el codigo del form:

PHP:
                        <form action="{{ route('search') }}" method="GET" class="flex-grow-1">
                            <div class="input-group">
                                <a class="text-reset bg-soft-secondary fs-12 rounded-left d-lg-none p-2" href="javascript:void(0);" data-toggle="class-toggle" data-target=".front-header-search">
                                    <i class="las la-arrow-left la-2x"></i>
                                </a>
                                <div class="input-group-prepend flex-grow-1 d-none d-sm-block">
                                    <input type="text" class="form-control" placeholder="I'm looking for" name="keyword">
                                </div>
                                <select class="form-control aiz-selectpicker" name="type">
                                    <option value="freelancer" @isset($type)
                                        @if ($type == 'freelancer')
                                            selected
                                        @endif
                                    @endisset>{{ translate('Freelancers') }}</option>
                                    <option value="project" @isset($type)
                                        @if ($type == 'project')
                                            selected
                                        @endif
                                    @endisset>{{ translate('Projects') }}</option>
                                    <option value="service" @isset($type)
                                        @if ($type == 'service')
                                            selected
                                        @endif
                                    @endisset>{{ translate('Services') }}</option>
                                </select>
                                <div class="input-group-append">
                                    <button type="submit" class="btn btn-icon btn-primary">
                                        <i class="las la-search la-rotate-270"></i>
                                    </button>
                                </div>
                            </div>
                        </form>


Ya he probado varias formas y nada que me funciona
 
La solución fue la siguiente :

cambiar la linea:

Insertar CODE, HTML o PHP:
 if($request->keyword != null){

por:

Insertar CODE, HTML o PHP:
  if($request->keyword = 'freelance'){

Y ahora si me lista solo los usuarios con roll deseado.
 
Creo que el problema radicaba que la pregunta esta realizando si Keyword es distinto a nulo (pero como no tiene nada cargado no entra en esa condicional y no filtra por el type == freelance

Aunque ya tengas la solucion puedes probar lo siguiente

PHP:
if($request->keyword == null){
 
Creo que el problema radicaba que la pregunta esta realizando si Keyword es distinto a nulo (pero como no tiene nada cargado no entra en esa condicional y no filtra por el type == freelance

Aunque ya tengas la solucion puedes probar lo siguiente

PHP:
if($request->keyword == null){


Lo llegue a probar y tampoco me funciono

Gracias igual xD
 
Que raro, pero bueno igual ya te funciona xD
 
Que raro, pero bueno igual ya te funciona xD

Si, pero muchos me han dicho que no es la forma ideal, que lo mejor es utilizar "== null" exactamente como tu lo pasaste.

Pero ni idea del xq no funciona
 
Intenta imprimir el valor del $request->keyword para determinar que tipo de dato posee.

Ya que no esta mal la forma como lo hiciste.
 
Hola, el código de la primera parte está completo? Ya que veo que el if creo que no cierra.
 
Atrás
Arriba