Laravel试图获取非对象的属性Error


Laravel Trying to get property of non-object Error

我有一个错误,我不明白为什么会发生这种情况。我试图返回一个观点,但拉拉维尔寻找一个我没有定义的不同观点。另一个错误是laravel查找我定义的变量,但出现了未定义的变量。我认为这是因为拉拉威尔寻找未定义的观点。

这是我的路线。php代码:

Route::get('/{kategori}', 'front'HaberController@kategori' ); 
Route::get('/{kategori}/{haber}/{id}', 'front'HaberController@haber' );

这是我在HaberController 中的功能

public function haber( $kategoriSlug = "Genel", $haberSlug , $id = 0 )
{
    GoruntulenmeSayaci::sayaciArtir( $this->haberVeriTuruId, $id ) ;
    if( Cache::has( 'haberDetay'.$id ) ){
        return Cache::get( 'haberDetay'.$id );
    } else {
            if( $id != 0 && is_numeric( $id ) ){
                if( isset ( session('yetki')->haber ) && session('yetki')->haber  > 1 ){  
                    $haber = DB::table('haberler')->where( "id", $id )->first(); 
                }else{
                    $haber = DB::table('haberler')->where( "id", $id )->where( "aktif_pasif", 1 )->first(); 
                }
            }else{
                return false;       
            }
            $anasayfaUstKutu = self::getAnasayfaUstKutu();
            $anasayfaSlider = self::getAnasayfaSlider();
            $kategori = DB::table('kategoriler')->where( "slug", $kategoriSlug )->where( "veri_turu_id", $this->haberVeriTuruId )->first(); 
            $anasayfaGrid = self::getAnasayfaGrid();
            $anasayfaVideolar = self::getAnasayfaVideolar();
            $anasayfaGaleriler = self::getAnasayfaGaleriler();
            $reklamlar = self::getReklamlar();
            $sonuc = view("front.haber.detay", [  
                                                "anasayfaUstKutu" => $anasayfaUstKutu, 
                                                "anasayfaSlider" => $anasayfaSlider, 
                                                "anasayfaVideolar" => $anasayfaVideolar,
                                                "anasayfaGaleriler" => $anasayfaGaleriler,
                                                "anasayfaGrid" => $anasayfaGrid,
                                                "haber" => $haber,
                                                "kategori" => $kategori,
                                                "reklamlar" => $reklamlar

                                             ]);

Cache::put( 'haberDetay'.$id , $sonuc->render(), $this->cacheSuresi );
            return $sonuc;
    }
}

当我尝试这些代码时,laravel给出了这个错误:

未定义的变量:reklalar(视图:/home/yazilim/resources/views/front/haber/kategoriblade.php)

在kategori.blade.php文件中找不到变量"reklalar"。

你在哪里看风景?你给出的是带有视图的变量吗?

例如

return View::make('front.haber.kategori')->with('clamar',null);

首先,检查self::getReklamlar()返回的值,如果可以,请尝试像上面那样编辑最后几行代码。

$sonuc = view("front.haber.detay", [  
    "anasayfaUstKutu" => $anasayfaUstKutu, 
    "anasayfaSlider" => $anasayfaSlider, 
    "anasayfaVideolar" => $anasayfaVideolar,
    "anasayfaGaleriler" => $anasayfaGaleriler,
    "anasayfaGrid" => $anasayfaGrid,
    "haber" => $haber,
    "kategori" => $kategori,
    "reklamlar" => $reklamlar  
 ])->render();

Cache::put('haberDetay'.$id , $sonuc, $this->cacheSuresi);
return $sonuc;