我想知道为什么这不会从数据库中提取记录。我已经好几天了。我想要做的就是使用typeahead从db中选择匹配的记录。当用户输入字符时,应显示匹配的记录,以便用户可以选择相关值。我希望善良的心能帮助我解决这个问题。
这是控制器:
public function SelectLocationPlaces(UserAdressRequest $userAdressRequest)
{
if($userAdressRequest->isMethod('post'))
{
if($userAdressRequest->has('query'))
{
$query = $userAdressRequest->get('query');
$locationPlaces = LocationPlaces::where('name', 'like', "%{$query}%")->toArray();
return json_encode($locationPlaces);
}
}
}
这是刀片形式:
{!! Form::open(array('url' => 'created-products', 'method' => 'post'), array('id'=>'createproduct')) !!}
{!! Form::token() !!}
<link href="{!! asset('bootstrap/css/bootstrap.css') !!}" media="all" rel="stylesheet" type="text/css" />
<link href="{!! asset('css/style.css') !!}" media="all" rel="stylesheet" type="text/css" />
<!--<link rel="stylesheet" type="text/css" href="style.css">-->
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<p>{!! Form::select('countries', array('-1' => 'Select a Country') + $listedCountries) !!} </p>
<div class='well'>
<p>{!! Form::text('query', '', array('id'=>'typeahead', 'data-provider'=>'typeahead')) !!}</p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="{!! asset('bootstrap/js/bootstrap.js') !!}" type="text/javascript" />
<script>
$(function(){
$('#typeahead').typeahead({
source: function(query, process){
$.ajax({
url: '{{ url('json/redirects/') }}',
type: 'POST',
data: 'query=' +query,
dataType: 'JSON',
async: true,
success: function(data){
process(data);
}
});
}
});
});
</script>
{!! Form::close() !!}
这是路线:
Route::post('json/redirects', array('before'=>'csrf', 'uses'=>'UserAddressController@SelectLocationPlaces'));
答案 0 :(得分:2)
你还没有写出问题所在 - 如果它是异常或其他原因,而不是:
$locationPlaces = LocationPlaces::where('name', 'like', "%{$query}%")->toArray();
你应该使用:
$locationPlaces = LocationPlaces::where('name', 'like', "%{$query}%")->get()->toArray();