我对Laravel和PHP比较熟悉。我是通过文档和Google学习Laravel的。我在这里找到的每一个打字/拉拉的问题我都点击过,但我似乎找不到一个非常合适的例子。This question离我们很近。其实我看不出有什么明显的差别。但话又说回来,那个行动在遥控器上也有问题。
我想我已经很接近了,因为我的各种作品似乎都是独立的。让我解释一下..。
我有个表格..。
<div class="input-group form-group" id="ingredients">
{{ Form::label('ingredients', 'Ingredients') }}
{{ Form::text('ingredients[]', null, array(
'class' => 'form-control typeahead',
'data-provide' => 'typeahead',
'data-items' => '10',
'id' => 'ingredients')
) }}
</div>..。用剧本..。
<script>
$('.typeahead').typeahead([
{
name: 'ingredients',
remote: '/recipe/create/%QUERY'
}
]);
</script>remote:指出这条路线
Route::get('recipe/create/{query}', 'SearchController@searchIngredients');
指向这个控制器方法..。
public function searchIngredients($query)
{
$data = array();
$results = Ingredient::select ('name')->where('name', 'LIKE', '%' . $query . '%')->get();
foreach ($results as $result) :
$data[] = $result->name;
endforeach;
var_dump($data);
return Response::json($data);
}当我在表单中输入一些文本时,我确实看到了浏览器请求:

如果我直接导航到远程URL,我确实看到了我的var_dump,正如我所期望的那样:
/recipe/create/s给我看
array(4) {
[0] "Sugar"
[1] "Cheese"
[2] "Salt"
[3] "rasins"
}我显然遗漏了一些东西,我怀疑这很简单,尽管我可能也错了。当我开始在表单字段中输入时,没有下拉列表。
我认为我的控制器方法在输入时永远不会被调用,否则我会看到每个浏览器请求都是var_dump,对吗?
如果是这样的话,我是不是被脚本中的remote:部分打断了?
编辑

发布于 2014-01-02 18:23:50
尝试将var_dump从控制器中取出-- typeahead期望使用有效的JSON作为响应。
发布于 2014-05-27 08:46:16
这将起作用并得到检验:
$data = array();
$results = Student::select ('id')->where('id', 'LIKE',$query . '%')->get();
foreach ($results as $result):
$data[] = $result->id."";
endforeach;
return Response::json($data);发布于 2014-10-06 18:21:01
顺便说一句,你本可以
$results = Ingredient::select ('name')->where('name', 'LIKE', '%' . $query . '%')->
return Response::json($results);https://stackoverflow.com/questions/20886845
复制相似问题