未定义的变量:laravel中的数据

时间:2019-05-29 08:50:12

标签: javascript php laravel-5

未定义变量:当我要显示数据库中的数据时发生数据错误。
这是我的代码

控制器

public function filter(Request $request)
{

    $data = Trial::where('zipcode',$request->zipcode)->select('lat','lng')->first();
    $lat = $data->lat;
    $lng = $data->lng;
    $distance = 5 ;// Diatanse in kms
    $query = Trial::getByDistance($lat, $lng, $distance);

    $ids = [];
    //Extract the id's
    if(!empty($query)) {
        foreach($query as $q)
        {
            array_push($ids, $q->id);
        }
    }

    // Now write final query 
    if(!empty($ids)){
        $results = DB::table('trial')->whereIn( 'id', $ids)->where('zipcode');
    }

    return view('search.searchhome',compact('data',$data));
    dd($data);

}

刀片

<p>
@foreach($data as $dat)
    {{$dat->zipcode}}
@endforeach                           
</p>

3 个答案:

答案 0 :(得分:1)

更改控制器

freopen()

刀片更换

public function filter(Request $request)
{

    $data = Trial::where('zipcode',$request->zipcode)->select('lat','lng')->first();
    $lat = $data->lat;
    $lng = $data->lng;
    $distance = 5 ;// Diatanse in kms
    $query = Trial::getByDistance($lat, $lng, $distance);

    $ids = [];
    //Extract the id's
    if(!empty($query)) {
        foreach($query as $q)
        {
            array_push($ids, $q->id);
        }
    }

    // Now write final query 
    if(!empty($ids)){
        $results = DB::table('trial')->whereIn( 'id', $ids)->get();
    }

    return view('search.searchhome',['data' => $results]);
}

答案 1 :(得分:1)

您的代码中有一些错误。

if(!empty($ids)){
    $results = DB::table('trial')->whereIn( 'id', $ids)->get();
 }

删除了->where()where子句没有条件。 添加了get(),否则查询将不会返回任何结果。

return view('search.searchhome',compact('results'));

data更改为results,因为其中包含您的数据。

dd($data); 

删除dd(),因为该函数在它之前返回,所以没有任何作用。

(我也建议您研究集合,而不是遍历第一个结果集)

答案 2 :(得分:1)

 public function filter(Request $request)
    {
        $data   = Trial::where('zipcode', $request->zipcode)->select('lat', 'lng')->first();
        $zip   = $request->input('zipcode');
        $search = Trial::where(array('zipcode' => $zip))->get();
        if(!isset($data)){
            return view('home');
        }
        $lat      = $data->lat;
        $lng      = $data->lng;
        $distance = 25;
        $query    = Trial::getByDistance($lat, $lng, $distance);
        $ids      = [];

        //Extract the id's
        if(!empty($query)){
            foreach($query as $q){
                array_push($ids, $q->id);
            }
        }

        // Now write final query 
        if(!empty($ids)){
            $results = DB::table('trial')->whereIn('id', $ids)->where('zipcode', $zip)->get();
        }
        return view('search.searchhome',['data' => $results]);
    }