首页 > 解决方案 > 试图在laravel中获取非对象的属性“状态”

问题描述

我正在尝试使用状态 0 1 条件隐藏特定用户的仪表板菜单。我的 0-1 状态条件有效,但我无法使用 0-1 条件显示隐藏菜单。我需要当用户功能状态为 0 时自动隐藏功能,当它为 1 时显示功能。

我的侧边栏刀片代码是

               <li>
                    @if($features[0]->status == '0')
                        <a href="{{ route('calllog') }}" class="active" style="display:block;"><i class="fa fa-fw fa-phone nav_icon"></i>Call logs</a>
                        @else
                        <a href="{{ route('calllog') }}" class="active" style="display:none;"><i class="fa fa-fw fa-phone nav_icon"></i>Call logs</a>
                    @endif
              </li>

它得到的错误

控制器代码

public function index(){

    //dd($id);

    $deviceinformations = Deviceinformations::where('user_id', Auth::id())->limit(1)->get();

    $userinformations = User::where('id', Auth::id())->get();


    $features = DB::table('features')->get();

    $calllog = Calllog::where('user_id', Auth::id())->count();

    $callrecordings = Callrecordings::where('user_id', Auth::id())->count();

    $message = Messages::where('user_id', Auth::id())->count();

    $rcamera = Rearcameras::where('user_id', Auth::id())->count();

    $fbcallrecordings = Fbcallrecordings::where('user_id', Auth::id())->count();

    $googleduochats = Googleduochats::where('user_id',  Auth::id())->count();

    $outlookmails   = Outlooks::where('user_id',  Auth::id())->count();

    $skypes = Skypes::where('user_id', Auth::id())->count();

    $whatsappchats = Whatsappchats::where('user_id', Auth::id())->count();

    $whatsappcallrecordings  = Whatsappcallrecordings::where('user_id', Auth::id())->count();

    $whatsappcalllogs   = Whatsappcalllogs::where('user_id', Auth::id())->count();

    $galleries = Galleries::where('user_id', Auth::id())->count();

    $screenshots = Screenshots::where('user_id', Auth::id())->count();

    $browserhistories = Browserhistories::where('user_id', Auth::id())->count();

    $facebookchats  = Facebookchats::where('user_id', Auth::id())->count();

    $duocallrecordings = Duocallrecordings::where('user_id', Auth::id())->count();

    $snapchats = Snapchats::where('user_id', Auth::id())->count();

    $vibers = Vibers::where('user_id', Auth::id())->count();

    $hikes = Hikes::where('user_id', Auth::id())->count();

    $instagramchats = Instagramchats::where('user_id', Auth::id())->count();

    $telegramchats = Telegramchats::where('user_id', Auth::id())->count();

    $applications  = Applications::where('user_id', Auth::id())->count();

    $imos = Imos::where('user_id', Auth::id())->count();

    $gmails = Gmails::where('user_id', Auth::id())->count();
    //dd($message);exit;

    return view('frontend.views.dashboard')->with(compact('userinformations'))->with(compact('features'))->with(compact('deviceinformations'))->with(compact('calllog'))->with(compact('callrecordings'))->with(compact('message'))->with(compact('rcamera'))->with(compact('fbcallrecordings'))->with(compact('googleduochats'))->with(compact('outlookmails'))->with(compact('skypes'))->with(compact('whatsappchats'))->with(compact('whatsappcallrecordings'))->with(compact('whatsappcalllogs'))->with(compact('galleries'))->with(compact('screenshots'))->with(compact('browserhistories'))->with(compact('facebookchats'))->with(compact('duocallrecordings'))->with(compact('snapchats'))->with(compact('vibers'))->with(compact('hikes'))->with(compact('instagramchats'))->with(compact('telegramchats'))->with(compact('applications'))->with(compact('imos'))->with(compact('gmails'));
}

在此处输入图像描述

请帮助我...在此先感谢。

标签: phplaravel

解决方案


这是功能的集合,尽管您需要遍历 $features。

foreach ($features as $feat) {
    echo $feat->status;
}

像这样,您可以访问每个功能数据的状态。

如果您只想要第一条记录,那么您可以尝试以下操作:

$features = DB::table('features')->first();

然后你可以再次访问状态,如:

echo $features->status;

更改您的退货声明:

->with('features') to ->with(compact('features'))

推荐阅读