【问题标题】:laravel Undefined property: stdClass::$laravel 未定义属性:stdClass::$
【发布时间】:2016-12-29 09:13:09
【问题描述】:

我怎样才能纠正这个错误,我有三个表profils、competences 和competents_profil。 我想恢复每个配置文件的权限,我可以使用查询生成器和 eloquent 的权限来检索配置文件。但是当我想检索每个配置文件的权限时,我收到以下错误:未定义的属性:$ stdClass ::

controller :
        $competences = \App\Competence::All();

     $profils = \DB::table('profils')
            ->select(['profils.*']);

        if($request->has('varcate')){
                $profils->join('fonctions','profils.fonctions_id','=','fonctions.id');       
                $profils->join('categos','fonctions.categos_id','=','categos.id');
                $profils->where('categos.id','=',$request->input('varcate'));

        }

        if($request->has('varfonction')){
            if(!$request->has('varcate')){   
                $profils->join('fonctions','profils.fonctions_id','=','fonctions.id');       
            }

            $profils->where('fonctions.id','=',$request->input('varfonction'));
        }

        if($request->has('varstate')){
                $profils->join('citys','profils.citys_id','=','citys.id');       
                $profils->join('states','citys.state_id','=','states.id');
                $profils->where('states.id','=',$request->input('varstate'));

        }

     if($request->has('varcity')){
            if(!$request->has('varstate')){   
                $profils->join('citys','profils.citys_id','=','citys.id');       
            }

            $profils->where('citys.id','=',$request->input('varcity'));
        }

      $profils = $profils->paginate(30);

型号: 权限 公共函数配置文件() { 返回 $this->belongsToMany('App\Profils'); }

profils
        public function competences()
    {
        return $this->belongsToMany('App\Competence');
    }

view :
@foreach($profils as $profil) 
        @foreach($profil->competences as $competence) 
          {{$competence->titre}}
        @endforeach
@endforeach

【问题讨论】:

    标签: php mysql laravel eloquent laravel-query-builder


    【解决方案1】:

    试试这个

    控制器:

        use App/Profils
    
    public function getProfiles(Profils $profils){
    
        $profils = $profils;
    
        if($request->has('varcate')){
    
            $varcate = $request->get('varcate');
            $profils =  $profils->whereHas('fonctions', function ($query) use ($varcate){
                            $query->whereHas('category', function ($subQuery) use ($varcate) {
                                    $subQuery->where('category.id',$varcate);
                            });
                        });
        }
    
        if($request->has('varfonction')){
    
            $varfonction = $request->get('varfonction');
            $profils =  $profils->whereHas('fonctions', function ($query) use ($varfonction){
                            $query->where('fonctions.id',$varfonction);
                    });
        }
    
        if($request->has('varstate')){
    
            $varstate = $request->get('varstate');
            $profils =  $profils->whereHas('citys', function ($query) use ($varstate){
                            $query->whereHas('states', function ($subQuery) use ($varstate) {
                                    $subQuery->where('states.id',$varstate);
                            });
                        });
        }
    
        if($request->has('varcity')){
    
            $varcity = $request->get('varcity');
            $profils =  $profils->whereHas('citys', function ($query) use ($varcity){
                            $query->where('citys.id',$varcity);
            });
    
        }
    
    
        $profils = $profils->paginate(30);
    
        return view('profiles',compact('profils'))
    }
    

    个人资料

     public function fonctions(){
        return $this->belongsTo('App\fonctions','fonctions_id');
    }
    
    public function citys(){
        return $this->belongsTo('App\citys','citys_id');
    }
    
    public function competences()
    {
        return $this->belongsToMany('App\Competence');
    }
    

    功能

    public function fonction(){
        return $this->belongsTo('App\category','category_id');
    }
    

    城市

    public function states(){
        return $this->belongsTo('App\states','state_id');
    }
    

    查看:

    @foreach($profils as $profil) 
            @foreach($profil->competences as $competence) 
              {{$competence->titre}}
            @endforeach
    @endforeach
    

    【讨论】:

    • 您的意思是我必须将我的 $profiles querybuilder 更改为 elequont?在我没有复制整个 Requet 之前,请在上面找到完整的请求。
    • 你可以将所有请求以类似的雄辩方式转换
    • 同样的事情:lwillaya、lmetier 和 lcommune,没有变化?
    猜你喜欢
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多