2017-01-28 6 views
0

Ich habe ein Laravel-Projekt, wo ich angefangen habe, die Verwaltung der Dinge zu programmieren. Ich habe eine Middleware erstellt, um zu überprüfen, ob ihre Government_ID> 0 ist, wenn sie nicht auf die verweigerte Seite umgeleitet werden.Laravel: Undefinierte Eigenschaft

Middleware:

<?php 

namespace App\Http\Middleware; 

use Closure; 
use Auth; 
use View; 
use App\Database\Website\Roleplay\GovernmentRole; 

class AdminAuth 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if (Auth::guest() || Auth::user()->roleplay->government_id == 0) 
     { 
      return redirect("denied"); 
     } 

     if (Auth::check()) 
     { 
      View::share('myGovernmentRole', GovernmentRole::where('id', Auth::user()->roleplay->government_id)->get()); 
     } 

     return $next($request); 
    } 
} 

Nun ist die Frage, über die ich fragen, ist dies.

Undefined property: Illuminate\Database\Eloquent\Collection::$government_type 

Wie Sie sehen können, ich teile die Ansicht:

View::share('myGovernmentRole', GovernmentRole::where('id', Auth::user()->roleplay->government_id)->get()); 

Und meiner Meinung nach ich dies tun:

@if ($myGovernmentRole->government_type == 'junior_ministers' 
        || $myGovernmentRole->government_type == 'senior_ministers' 
        || $myGovernmentRole->government_type == 'higher_government' 
        || $myGovernmentRole->government_type == 'royalty') 
         <li class="dropdown"> 
          <a href="#" clas="dsropdown-toggle profile-image" data-toggle="dropdown"> 
           <i class="fa fa-user"></i> &nbsp;JuniorCP <b class="caret"></b></a> 
          <ul class="dropdown-menu"> 
           <li><a href="/business/overview"><i class="fa fa-briefcase"></i> &nbsp;Business</a></li> 
          </ul> 
         </li> 
        @endif 

Und es scheint zu passieren, wenn man versucht, die government_type zu erhalten Spalte, aber ich weiß nicht warum, ich dachte, du könntest einfach -> Spalte auf eine Sammlung und bekomme die Spalte, bin ich falsch?

Wer kann helfen, danke. Verwenden von Laravel 5.3

+0

Ist government_type auf ausfüllbare Array auf Modell enthalten? –

+0

protected $ filable = []; Ich habe es auf alles eingestellt. – Ashkru

+0

hast du nicht versucht, 'Auth :: user() -> roleplay' vor if-Anweisungen auszugeben? was es zeigt? –

Antwort

0

Fügen Sie einfach den View :: share-Befehl in die boot() -Methode der App \ Providers \ AppServiceProvider.php-Datei ein (achten Sie darauf, das get() in first() zu ändern).

Diese Middleware umleiten, wenn Gast oder wenn goverment_id ist 0. Keine Notwendigkeit für die zweite, wenn es ...

+0

Ganz sicher, warum diese Antwort hier ist, ändert sich nichts. Immer noch die gleiche Ausgabe. – Ashkru

Verwandte Themen