Неопределенная переменная: данные в laravel - PullRequest
0 голосов
/ 29 мая 2019

Неопределенная переменная: ошибка данных происходит, когда я хочу отобразить данные из базы данных.
Вот мой код

Контроллер

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 ]

1 голос
/ 29 мая 2019

В вашем коде есть несколько ошибок.

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(), это ничего не делает, так как функция возвращается перед ним.

(я бы также посоветовал изучить коллекции, а не циклически повторять первый набор результатов)

1 голос
/ 04 июня 2019
 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]);
    }
1 голос
/ 29 мая 2019

Смена контроллера

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]);
}

Смена лезвия

<p>
@foreach($data as $dat)
    {{$dat->zipcode}}
@endforeach                           
</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...