将搜索约束结果转化为数据库数据
Turning search constraint results into database data
目前我有一个搜索表单,我可以在其中查询我的数据库以查找“击球手”的姓名和国籍。这在显示击球手匹配约束方面效果很好,但我试图创建一些文本来告诉用户他们搜索的内容。目前我可以 return nationality_ID 的 id 值,但我想 return nationality_id 的名称字段,这是我目前所拥有的:
表:击球手::ID,姓名,Nationality_ID;
国籍: 身份证、姓名、
评论:ID,评论,batsmen_id
搜索表单:
{!! Form::open(['route' => 'search.index', 'method' => 'GET']) !!}
<div class="form-group">
{!! Form::label('batsmenname', 'Search By Name:') !!}
{!! Form::text('batsmenname', null, array('class' => 'form-control')) !!}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{!! Form::label('nationality_id', 'Search By Nation:') !!}
<select class="form-control" name="nationality_id" >
<option value=""></option>
@foreach($nationality as $nation)
<option value="{{$nation->id}}">{{$nation->name}}</option>
@endforeach
</select>
</div>
<div class="form-group">
{!! Form::submit('Find Batsmen', array('class' => 'btn-send btn-lg btn-block')) !!}
{!! Form::close() !!}
</div>
控制器:
public function index(Request $request)
{
$batsmenQuery = Batsmen::where('approved', '=', 1)
$nationality = Nationality::all()->sortBy('name') ;
$batname=$request->input('batsmenname');
$location=$request->input('nationality_id');
if(!empty($batname)){
$batsmenQuery->where('batsmenname', 'LIKE', '%'.$batname.'%')->get();
}
if(!empty($location)){
$batsmenQuery->where('nationality_id', $request->input('categories_id') )->get();
}
$batsmen= $batsmenQuery->paginate(40);
return view('page.search')->withBatsmen($batsmen)->withBatname($batname)->withLocation($location)
}
击球手模型:
public function nationality(){
return $this->belongsTo('App\Nationality','nationality_id');
}
结果HTML:
<h4 class="result">{{($batsmen->total())}} batsmen found matching your search criteria: ('{{$batname}}', {{$location}})</p>
问题是我如何获取显示在 $location 中的 ID 号以显示 name 字段Nationality_ID?
为您搜索的 nationality_id
找到 Nationality
型号:
if ($nationality = Nationality::find($request->input('nationality_id'))) {
$nationality_name = nationality->getAttribute('name');
} else {
abort(404, 'No matching nationality for id ' . $request->input('nationality_id') . ' found.');
}
将其更改为正确的复数形式:
$nationalities = Nationality::all()->sortBy('name') ;
并且 return 到视图:
return view('page.search',compact('batsmen', 'batname', 'nationalities', 'nationality_name'));
那么在你看来,使用:
{{ $nationality_name }}
而不是:
{{ $location }}
像这样:
<h4 class="result">
{{ $batsmen->count() }} batsmen found matching your search criteria: ('{{ $batname }}', {{ $nationality_name }})
</h4>
我也将 total() 更改为 count()。
目前我有一个搜索表单,我可以在其中查询我的数据库以查找“击球手”的姓名和国籍。这在显示击球手匹配约束方面效果很好,但我试图创建一些文本来告诉用户他们搜索的内容。目前我可以 return nationality_ID 的 id 值,但我想 return nationality_id 的名称字段,这是我目前所拥有的:
表:击球手::ID,姓名,Nationality_ID; 国籍: 身份证、姓名、 评论:ID,评论,batsmen_id
搜索表单:
{!! Form::open(['route' => 'search.index', 'method' => 'GET']) !!}
<div class="form-group">
{!! Form::label('batsmenname', 'Search By Name:') !!}
{!! Form::text('batsmenname', null, array('class' => 'form-control')) !!}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{!! Form::label('nationality_id', 'Search By Nation:') !!}
<select class="form-control" name="nationality_id" >
<option value=""></option>
@foreach($nationality as $nation)
<option value="{{$nation->id}}">{{$nation->name}}</option>
@endforeach
</select>
</div>
<div class="form-group">
{!! Form::submit('Find Batsmen', array('class' => 'btn-send btn-lg btn-block')) !!}
{!! Form::close() !!}
</div>
控制器:
public function index(Request $request)
{
$batsmenQuery = Batsmen::where('approved', '=', 1)
$nationality = Nationality::all()->sortBy('name') ;
$batname=$request->input('batsmenname');
$location=$request->input('nationality_id');
if(!empty($batname)){
$batsmenQuery->where('batsmenname', 'LIKE', '%'.$batname.'%')->get();
}
if(!empty($location)){
$batsmenQuery->where('nationality_id', $request->input('categories_id') )->get();
}
$batsmen= $batsmenQuery->paginate(40);
return view('page.search')->withBatsmen($batsmen)->withBatname($batname)->withLocation($location)
}
击球手模型:
public function nationality(){
return $this->belongsTo('App\Nationality','nationality_id');
}
结果HTML:
<h4 class="result">{{($batsmen->total())}} batsmen found matching your search criteria: ('{{$batname}}', {{$location}})</p>
问题是我如何获取显示在 $location 中的 ID 号以显示 name 字段Nationality_ID?
为您搜索的 nationality_id
找到 Nationality
型号:
if ($nationality = Nationality::find($request->input('nationality_id'))) {
$nationality_name = nationality->getAttribute('name');
} else {
abort(404, 'No matching nationality for id ' . $request->input('nationality_id') . ' found.');
}
将其更改为正确的复数形式:
$nationalities = Nationality::all()->sortBy('name') ;
并且 return 到视图:
return view('page.search',compact('batsmen', 'batname', 'nationalities', 'nationality_name'));
那么在你看来,使用:
{{ $nationality_name }}
而不是:
{{ $location }}
像这样:
<h4 class="result">
{{ $batsmen->count() }} batsmen found matching your search criteria: ('{{ $batname }}', {{ $nationality_name }})
</h4>
我也将 total() 更改为 count()。