在laravel上将select DB :: table转换为数组

时间:2015-11-24 05:49:13

标签: laravel laravel-5.1

我想更改此代码

 $data = array(
        'O' => 'Orange',
        'Y' => 'Yellow',
        'G' => 'Green',
        'B' => 'Blue',
        'I' => 'Indigo',
        'V' => 'Violet',
    );

使用此代码

 $d = DB::table('sps')
                ->select(array('sps.namasp'))
                ->where('namasp','like',$term)
                ->get();

这是我在路线上的完整代码

Route::get('getdata', function()
{
    $term = Input::get('term');
    $data = array(
        'SPION DEPAN' => 'Spion Depan',
        'SPION TENGAH' => 'Spion Tengah',
        'O' => 'Orange',
        'Y' => 'Yellow',
        'G' => 'Green',
        'B' => 'Blue',
        'I' => 'Indigo',
        'V' => 'Violet',
    );
    $return_array = array();

    foreach ($data as $k => $v) {
        if (strpos($v, $term) !== FALSE) {
            $return_array[] = array('value' => $v, 'id' =>$k);
        }
    }
    return Response::json($return_array);
});

基本上我试图在我的刀片上找到自动完成的代码。我在这里堆叠 如果您对laravel 5.1上的搜索自动完成有任何参考,请举例或链接。谢谢之前:))

1 个答案:

答案 0 :(得分:0)

您可以使用lists方法获取数组

$d = DB::table('sps')
                ->select(array('sps.namasp'))
                ->where('namasp','like',$term)
                ->lists("<< value >>","<< key >>");

此查询返回一个数组。

注意: -

  1. &LT;&LT;值&gt;&gt; 替换为生成数组值的表字段。
  2. &LT;&LT;键&gt;&gt; 替换为您的表格,使其成为数组的键