私は、テキストボックスから値を取得する検索機能を実行しています(チェックしています)。スキル表の 'スキル'列と比較します。 1つの文字または単語全体に一致するものがある場合、 'handymen'テーブルの詳細を出力する必要があります。これらのテーブルは、モデル内で 'hasMany'および 'belongsToMany'とリンクされています。問題は、私は出力を得るかということですが、私がテキストボックスに空の文字列を入力した場合でも、すべての便利屋の点灯だがLaravel検索機能が出力を出さない
。
コントローラー:
function search()
{
$skills = Skill::all();
return view('layouts/search',['skills' => $skills]);
}
//$searchTerm = request('skill');
function details() {
$handymen = Handyman::whereHas('skills', function($query) {
if(!empty($searchTerms)){
foreach($searchTerms as $skill) {
$query->where('skill', 'LIKE', '%'. $skill .'%');
}
}
})->get();
return view('layouts/details', compact('handymen'));
}
ビュー-検索:
@extends('layouts.master')
@section('title', 'Search Page')
@section('content')
<h1>Here you can search</h1>
<form action="{{url('details')}}" method="POST">
{{ csrf_field() }}
<div>
<input type='text' name='skill' />
</div>
<input type="submit" name="submitBtn" value="Search">
</form>
@endsection
ビューの詳細は、ここに私の結果でなければなりません:
@extends('layouts.master')
@section('title', 'Add Job')
@section('content')
<h1>Handyman details</h1>
<ul>
@foreach ($handymen as $handyman)
<a href= "{{url('skilledHandyman/'.$handyman->id)}}">
{{$handyman->first_name}}</a>
@endforeach
</ul>
@endsection
? foreach($ searchTermsを$ skillとして)?これを関数の詳細の中に入れてコメントを外します$ searchTerm = $ request-> input( 'skill'); –