Laravel中的自动完成搜索

问题描述:

我想知道是否有任何方法可以在自动填充搜索框中显示多个字段。它已经搜索拳头和姓氏,但是当用户输入姓氏时,它只显示第一个名字。但我想知道是否有方法可以在搜索结果上显示姓氏或地址。我只得到监护人的身份证,因为这是我需要发送到数据库的唯一东西。下面来看看我的代码:Laravel中的自动完成搜索

这是我的自动完成功能:

public function autocomplete(Request $request) 
    { 
     $term=$request->term; 
     $data = Guardian::orWhere('first_name','LIKE','%'.$term.'%') 
     ->orWhere('last_name','LIKE','%'.$term.'%') 
     ->take(10)->get(); 
     $results=array(); 
     foreach($data as $key => $v) 
     { 
      $results[]=['id'=>$v->idguardian, 'value'=>$v->first_name]; 
     } 
     return response()->json($results); 
    } 

我的观点:

<div class="row"> 
    <div class="col-md-6"> 
     <h3>New Kid</h3> 
     <p> Please search the guardian name for the kid. If the guardian isn't registered please add it</p> 
     <form action="{{route('createkid')}}" method="post"> 
     <div class="form-group"> 
      <input type="text" name="searchname" class="form-control" id="searchname" placeholder="Search"> 
      <tr> 
      <td>ID</td> 
      <td><input type="text" name="idguardian" id="idguardian" class="form-control"></td> 
      </tr> 
      <tr> 
      <td></td> 
      <td></td> 
      </tr> 
    </div> 
     <a href="{{URL::to('addguardian/list/')}}" class="btn btn-success btn-xs" >Add Guardian</a> 
     <div class ="form-group"> 
     <label for="first_name">First Name</label> 
     <input type="text" name="first_name" class="form-control" placeholder="FirstName"> 
     </div> 
     <div class ="form-group"> 
     <label for="middle_name">Middle Name</label> 
     <input type="text" name="middle_name" class="form-control" placeholder="MiddleName"> 
     </div> 
     <div class ="form-group"> 
     <label for="last_name">Last Name</label> 
     <input type="text" name="last_name" class="form-control" placeholder="LastName"> 
     </div> 
     <div class ="form-group"> 
     <label for="dateofbirth">Date Of Birth</label> 
     <input type="text" name="dateofbirth" class="form-control" placeholder="DateOfBirth"> 
     </div> 
     <div class ="form-group"> 
     <label for="sex">Sex</label> 
     <input type="text" name="sex" class="form-control" placeholder="Sex"> 
     </div> 
     <div class ="form-group"> 
     <label for="age">Age</label> 
     <input type="text" name="age" class="form-control" placeholder="Age"> 
     </div> 
     <div class ="form-group"> 
     <label for="schoolname">School Name</label> 
     <input type="text" name="schoolname" class="form-control" placeholder="SchoolName"> 
     </div> 
     <div class ="form-group"> 
     <label for="schoolgrade">School Grade</label> 
     <input type="text" name="schoolgrade" class="form-control" placeholder="SchoolGrade"> 
     </div> 
     <div class ="form-group"> 
     <label for="schoolgroup">School Group</label> 
     <input type="text" name="schoolgroup" class="form-control" placeholder="SchoolGroup"> 
     </div> 
     <div class ="form-group"> 
     <label for="bloodtype">Blood Type</label> 
     <input type="text" name="bloodtype" class="form-control" placeholder="BloodType"> 
     </div> 
     <div class ="form-group"> 
     <label for="allergies">Allergies</label> 
     <input type="text" name="allergies" class="form-control" placeholder="Allergies"> 
     </div> 
     <div class ="form-group"> 
     <label for="enroll_date">Enroll Date</label> 
     <input type="text" name="enroll_date" class="form-control" placeholder="EnrollDate"> 
     </div> 
     <div class="form-group"> 
     {!! Form::label('iduser','Select User') !!} 
     {!! Form::select('iduser', $kids, ['class' => 'form-control']) !!} 
     </div> 

     <button type="submit" class="btn btn-primary">Submit</button> 
     <input type="hidden" name="_token" value="{{ Session::token()}}"> 
    </form> 
    </div> 
</div> 
<script type="text/javascript"> 
$("#searchname").autocomplete({ 
    source : '{!!URL::route('autocomplete')!!}', 
    minLenght:1, 
    autoFocus:true, 
    select:function(e, ui){ 
    $('#idguardian').val(ui.item.id); 

    } 
}); 
</script> 

我的路线:

Route::get('/autocomplete',array('as'=>'autocomplete','uses'=>'[email protected]')); 

我真的希望你可以帮助我。谢谢!

为什么不把姓氏追加到名字上?

public function autocomplete(Request $request) 
{ 
    $term=$request->term; 
    $data = Guardian::orWhere('first_name','LIKE','%'.$term.'%') 
    ->orWhere('last_name','LIKE','%'.$term.'%') 
    ->take(10)->get(); 
    $results=array(); 
    foreach($data as $key => $v) 
    { 
     $results[]=['id'=>$v->idguardian, 'value'=>$v->first_name . ' ' . $v->last_name]; 
    } 
    return response()->json($results); 
} 
+0

非常感谢!我曾尝试过,但我完全忘记了语法。谢谢!对此,我真的非常感激! –