Laravel试图获取非对象错误的属性

时间:2016-04-18 12:54:37

标签: php laravel laravel-5 laravel-5.1 laravel-routing

我有一个错误,我无法理解为什么会这样。我尝试返回一个视图,但是laravel寻找一个我没有定义的不同视图。另一个错误是laravel查找我定义的变量,但发生了未定义的变量。我认为这是因为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会出现此错误:

  

未定义的变量:reklamlar(查看:   /home/yazilim/resources/views/front/haber/kategori.blade.php)

2 个答案:

答案 0 :(得分:1)

变量' reklamlar'在您的kategori.blade.php文件中找不到。

你在哪里观看?你是否给视图变量?

E.g。

  

返回View :: make(' front.haber.kategori') - > with(' reklamar',null);

答案 1 :(得分:0)

首先,检查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;