Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在视图中获取值。Laravel_Php_Mysql_Laravel_Laravel 5.2 - Fatal编程技术网

Php 无法在视图中获取值。Laravel

Php 无法在视图中获取值。Laravel,php,mysql,laravel,laravel-5.2,Php,Mysql,Laravel,Laravel 5.2,我试图在从控制器传递的视图中获取值。 在我的控制器中,我的语法是: public function index() { $vehicles=vehicles::orderBy('created_at', 'desc')->get(); // return $vehicles; $ad=ads::orderBy('views','desc')->get(); // return $ad; fore

我试图在从控制器传递的视图中获取值。 在我的控制器中,我的语法是:

public function index()
    {
        $vehicles=vehicles::orderBy('created_at', 'desc')->get();
        // return $vehicles;
        $ad=ads::orderBy('views','desc')->get();
        // return $ad;

        foreach ($ad as $ads) {     
            # code...
            $popularvehicle[]=vehicles::where('id',$ads->id)->get();
            // echo $popularvehicle;
        }

        return view('index',compact('vehicles','popularvehicle'));
    }
在我看来,我尝试了以下几点:

@foreach($popularvehicle as $popularvehicle)
    {{$popularvehicle->vname}}
@endforeach
它给出了一个未定义属性的错误:Illumb\Database\Eloquent\Collection::$vname

我也试过{!!$popularvehicle['vname']!!}。但它会抛出错误,就像未定义索引一样

当我回显{!!$popularvehicle!!}时,它会给出所需的所有值,如[{id:3,vname:Pulsar,lotno:Ba 25 Pa,发动机:150,里程:35,公里:25000,价格:120000,可转让:是,条件:新,使用:3个月,制造年份:2015,描述:几乎全新,公司\ cid:1,用户\ id:1,车辆\类型\ id:1,创建时间:2017-01-12 15:08:41,更新时间:2017-01-12 15:08:41}]

我如何获取$popularvehicle的值?有人能帮我吗?将数组转换为对象是否有助于解决此问题。如果是,我该如何做?

考虑复数名称

    $popularvehicles = array(); 
    foreach ($ad as $ads) {
        $popularvehicles[]=vehicles::where('id',$ads->id)->get();
    }
    return view('index',compact('vehicles','popularvehicles'));
并在视图中使用

 @foreach($popularvehicles as $popularvehicle)
    {{$popularvehicle->vname}}
 @endforeach
试试这个:

public function index()
    {
        $vehicles = vehicles::orderBy('created_at', 'desc')->get();
        // return $vehicles;
        $ads = ads::orderBy('views','desc')->get();
        // return $ad;

        foreach ($ads as $ad) {     
            # code...
            $popularvehicles[]=vehicles::find($ad->id);
        }

        return view('index',compact('vehicles','popularvehicles'));
    } 
控制器:

$popularvehicle = vehicles::where('id',$ads->id)->get();
// If you use $popularvehicles[] then you have to use one extra foreach() to retrieve the columns
视图:

错误是因为->试图指向对象$popularvehicles[]的属性是一个数组:

 $ads=ads::orderBy('views','desc')->get();
    foreach ($ads as $ad) {
            $popularvehicles[]=vehicles::where('id',$ad->id)->get()->toArray();
    }
然后呢,

@foreach($popularvehicles as $popularvehicle)
     @foreach($popularvehicle as $vehicle)
             {{$vehicle['vname']}}
     @endforeach
@endforeach
请注意对命名约定所做的更改。此外,型号名称最好是单数。

尝试以下方法:

public function index()
    {
        $vehicles = vehicles::orderBy('created_at', 'desc')->get();
        // return $vehicles;
        $ads = ads::orderBy('views','desc')->get();
        // return $ad;

        foreach ($ads as $ad) {     
            # code...
            $popularvehicles[]=vehicles::find($ad->id);
        }

        return view('index',compact('vehicles','popularvehicles'));
    } 
在你看来:

@foreach($popularvehicles as $popularvehicle)
    {{$popularvehicle->vname}}
@endforeach

它引发以下错误:未定义变量:popularvehicle@PunitGajjarIt提供未定义的属性:illumb\Database\Eloquent\Collection::$vname是否在控制器中将popularvehicle更改为popularvehicles?是$popularvehicles=array;foreach$ad作为$ads{code…$popularvehicles[]=车辆::where'id',$ads->id->get;//echo$popularvehicle;}返回视图'index',compact'vehicles','popularvehicles';}并且您在视图中也更改了吗?是的@foreach$popularvehicles为$popularvehicle{{{$popularvehicle->vname}}@endforeach但它只返回值,不是吗?就像前面一样,如果我不使用[],PopularDevice将只覆盖最后一个值。它只返回1个值。我有3个应该检索的值。@您是否在查询中添加了->toArray?是的。foreach$ads作为$ad{$popularvehicles[]=vehicles::where'id',$ad->id->get->toArray;}@Anon哦,是@foreach$popularvehicles作为$popularvehicle@foreach$popularvehicle作为$vehicle{{$vehicle['name']}@endforeach@endforeach查看更新的答案。