Typeahead不使用Laravel 5.1

时间:2016-01-09 22:25:19

标签: php eloquent laravel-5.1 bootstrap-typeahead

我想知道为什么这不会从数据库中提取记录。我已经好几天了。我想要做的就是使用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'));

1 个答案:

答案 0 :(得分:2)

你还没有写出问题所在 - 如果它是异常或其他原因,而不是:

$locationPlaces = LocationPlaces::where('name', 'like', "%{$query}%")->toArray();

你应该使用:

$locationPlaces = LocationPlaces::where('name', 'like', "%{$query}%")->get()->toArray();