Ajuda, este código não funciona

  • Autor Autor eswal200
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
eswal200

eswal200

Préstamo impago
1
Zeta
Verificación en dos pasos activada
Suscripción a IA
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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
keyword siempre es null, por eso nunca se filtra por tipo freelancer, si la memoria no me falla para $request el método debe ser POST.

si lo coloco post da error
 
La solución fue la siguiente :

cambiar la linea:

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

por:

Inserir CODE, HTML ou 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.
 
Voltar
Topo