Не отображаются результаты поиска - PullRequest
0 голосов
/ 05 мая 2019

У меня есть модуль обмена сообщениями, в котором клиент и терапевт могут взаимодействовать.Внутри мой почтовый ящик состоит из имен клиентов.Теперь я терапевт, в моем почтовом ящике показывается клиент, с которым я общался.Я хочу найти имя конкретного клиента по имени или фамилии, возможно.Но это не работает так, как я хотел.Что-то не так с моим кодом?

Контроллер

public function findName(Therapist $therapists, Request $request)
{
    $query = Therapist::query();

    $therapist = $query->whereUserId(Auth::user())->with('user');

    $therapist->with([
        'contacts' => function ($q) use ($request) {
            $q->when($request->name, function ($q) use ($request) {
                $q->whereHas('client', function ($q) use ($request) {
                    $q->whereRaw('CONCAT(fname, " ", lname) LIKE "%'.$request->name.'%"');
                });
            })
            ->with('client.user')
            ->latest();
        },
    ]);

    $therapist = $therapist->first();

    return view('therapist.message', compact('contacts'));
}

Это мой взгляд.

<div class="headind_srch">
    {!! Form::open(['url' => url()->current(), 'method' => 'get']) !!}
    <div class="row">
        <div class="col-md-8">
            {!! Form::inputGroup('text', null, 'name', request()->name ?? null, ['placeholder' => 'Client Name']) !!}
        </div>
        <div class="col-md-4">
            <button type="submit" class="btn pull-right"><i class="ti-search"></i></button>
        </div>
    </div>
    {!! Form::close() !!}
</div>
<div class="inbox_chat">
    @foreach($contacts AS $contact)
        <div class="chat_list {{ $recipient == $contact->user_id ? 'active_chat' : '' }}">
            <div class="chat_people align-items-center d-flex"> <!--h-->
                <div class="incoming_msg_img">
                    <img src="">
                </div>
                <div class="chat_ib">
                    <div class="form-row">
                        <label onclick="javascript:window.location.href = '{{ route('therapist.index', $contact->user_id) }}'"
                               style="cursor:pointer;">
                            {{ $contact->fullname }}
                            &nbsp;
                            @if(optional($threadList->get($contact->user_id))->unseen_count)
                                <div class="badge badge-pill badge-secondary chat_date">
                                    {{ optional($threadList->get($contact->user_id))->unseen_count  }}
                                </div>
                            @endif
                        </label>
                    </div>
                </div>
                <div class="right_side_btn" id=""> <!--s-->
                    <div class="dropdown" style="cursor:pointer;">
                        <a data-id="{{$contact['id']}}" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="false">
                            <i class="fas fa-cog"></i>
                        </a>
                        <div class="dropdown-menu" aria-labelledby="dropdownMenu1">
                            <li>
                                <a data-toggle="modal" data-target="#view-modal-{{$contact['id']}}">
                                    <button type="submit"
                                            style="cursor:pointer; border: none; background-color: white;">
                                        Delete thread
                                    </button>
                                </a>
                            </li>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    @endforeach
</div>

Я ожидаю, что он отобразитимя клиента при поиске по имени или фамилии.Фактический результат показывает всех доступных пользователей.

1 Ответ

0 голосов
/ 08 мая 2019

Попробуйте объявить переменную $ contacts

$query = Therapist::query();

$therapist = $query->whereUserId(Auth::user())->with('user');

$therapist->with([
    'contacts' => function ($q) use ($request) {
        $q->when($request->name, function ($q) use ($request) {
            $q->whereHas('client', function ($q) use ($request) {
                $q->whereRaw('CONCAT(fname, " ", lname) LIKE "%'.$request->name.'%"');
            });
        })
        ->with('client.user')
        ->latest();
    },
]);
$contacts = $therapist->first()->contacts;
return view('therapist.message', compact('contacts'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...