jQuery-autocomplete在结果中添加图像

时间:2016-10-10 17:50:43

标签: php jquery laravel autocomplete

我有一个项目,用户可以从搜索栏搜索其他用户,但使用自动填充,我只能获得其他用户的用户名,而不是个人资料图片。我的users表格中有一列avatar,其中存储了每个用户的个人资料图片 控制器:

public function autocomplete1() {
    $queries = User::where(function($query) {
        $term = Input::get('term');
        $query->where('username', 'like', '%'.$term.'%');
    })->take(6)->get();
    $results = array();

    foreach($queries as $query) {
        $results[] = ['query' => $query->avatar, 'avatar' => $query->username];
    }
    return response::json($results);    
}

查看:

$(function() {
    $('#text3').autocomplete({
        source: "autocomplete1",
        minlenght: 2,
        autoFocus: true,
        select: function(event, ui) {
            $('#text3').val(ui.item.value);
        }
    });
    $('#text3').data("ui-autocomplete")._renderItem = function(ui, item) {
        var $li = $("<li style='width:800px; margin-left:10px; margin-bottom:5px'>"),
        $img = $("<img style='width:8%'>");

        $img.attr({
            src: '{{URL::to('/')}}/images/' + item.avatar,
            alt: item.value
        });
        $li.attr('data-value', item.value);
        $li.append("");
        $li.append($img).append("" + item.value);
        return $li.appendTo(ul);    
    };
});

1 个答案:

答案 0 :(得分:0)

在您的PHP代码中,您似乎只是从每个对象(username)中提取$v->username。尝试:

$results[]=['value'=>$v];

我认为这会将整个对象存储在数组中(希望与您想要的个人资料图片字段一起存储)。