我试图通过搜索列(patient_id)在(预订)表中创建搜索框,此列是(患者)表的外键,此列(patient_id)通过foreach获取(patient_name)的数据{{$ booking-> patient-> patient_name}},问题是我不知道如何在我的控制器(BookingController)中通过(patient_id)搜索(patient_name),任何帮助?对不起我的语言:(
这是我的预订控制器:
public function index()
{
$search = \Request::get('search');
$bookings = Booking::with('patient')->where('status','=', null)-
>where('patient_name','like', '%'. $search. '%' )->paginate(10);
return view('booking.index')->withBookings($bookings);
}
我的预订模式:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Eloquent;
class Booking extends Eloquent
{
public function patient()
{
return $this->belongsTo('App\Patient');
}
}
我的患者模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Eloquent;
class Patient extends Eloquent
{
public function booking()
{
return $this->hasMany('App\Booking');
}
}
更新..这是索引页面
{!! Form::open(['method'=>'GET','url'=>'booking','class'=>'navbar-form navbar-left','role'=>'search']) !!}
<a href="{{ url('booking.index') }}" class="btn btn-primary btn-sm"><span class="glyphicon glyphicon-plus"></span> Add</a>
<div class="input-group custom-search-form">
<input type="text" class="form-control" name="search" placeholder="Search...">
<span class="input-group-btn">
<button class="btn btn-default-sm" type="submit">
<i class="fa fa-search"> <span class="hiddenGrammarError" pre="" data-mce-bogus="1"></span></i>
</button>
</span>
</div>
{!! Form::close() !!}
<th>حجز باسم</th>
<th>القيمة</th>
<th>اسم الطبيب</th>
<th>النوع</th>
</tr>
</thead>
<div ng-controller="myController">
<tbody>
@foreach ($bookings as $booking)
<tr ng-repeat="booking in bookings|filter:searching">
<td align="center">
<a href="{{route('booking.edit',$booking->id)}}" class="btn btn-default"><em class="fa fa-pencil"></em></a>
<a class="btn btn-danger"><em class="fa fa-trash"></em></a>
</td>
<td class="hidden-xs">{{$booking->id }}</td>
<th>{{$booking->booking_date }}</th>
<th>{{$booking->patient->patient_name }}</th>
<td>{{$booking->value }}</td>
<td>{{$booking->doctor_name }}</td>
<td>{{$booking->tybe }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!--
<div class="panel-footer">
<div class="row">
<div class="col col-xs-4">Page 1 of 5
</div>
<div class="col col-xs-8">
<ul class="pagination hidden-xs pull-right">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
</ul>
<ul class="pagination visible-xs pull-right">
<li><a href="#">«</a></li>
<li><a href="#">»</a></li>
</ul>
</div>
</div>
</div>
-->
</div>
</table>
<div class="text-center">
{!! $bookings->links(); !!}
</div>
</div></div></div>
$bookings = Booking::with(['patient' => function($query) use ($search){
$query->where('patient_name', 'like', '%' . $search . '%');
}])->where('status','=', null)->paginate(10);
或者,如果您不确定将患者分配给所有预订,那么您应该使用以下查询:
$bookings = Booking::whereHas('patient', function ($query) use ($search) {
$query->where('patient_name', 'like', '%' . $search . '%');
})->where('status','=', null)->paginate(10);
public function index(Request $request)
{
$keyword = $request->input('searchquery');
$bookings= Booking::whereHas('patient', function($query) use ($keyword) {$query->where('patient_name', 'like', $keyword);})->get();
return view('booking.index',compact('bookings'));
}
尝试:
dd($search);
如果您从某些输入中搜索,请尝试使用:
$serach = $request->serach;