我有一个消息传递模块,客户和治疗师可以在其中进行交互。我的收件箱中包含客户名称。现在,我是治疗师,在我的收件箱中显示了我已沟通的客户。我想按名字或姓氏搜索特定客户端的名称。但这并不符合我想要的方式。我的代码有问题吗?
控制器
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 }}
@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>
我希望它通过按名字或姓氏搜索来显示客户端的名称。实际结果显示所有可用的可用用户。
答案 0 :(得分:0)
尝试声明变量$ 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'));