2017-01-28 1 views
0

У меня есть проект laravel, где я начал кодировать административную сторону вещей. Я создал промежуточное программное обеспечение, чтобы проверить, если их government_id> 0, если они не перенаправлены на страницу с отрицанием.Laravel: Неопределенное свойство

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); 
    } 
} 

Теперь вопрос, который я задаю об это.

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

Как вы можете видеть, я разделяю мнение:

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

И на мой взгляд, я делаю это:

@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 

И это, кажется, происходит при попытке получить government_type но я не знаю, почему, я думал, вы могли бы просто сделать -> столбец в коллекции и получить столбец, я не прав?

Любой, кто может помочь. Использование Laravel 5.3

+0

ли government_type включены в нефтеналивной массив на модели? –

+0

protected $ fillable = []; У меня это все. – Ashkru

+0

Вы не пытались сбросить команды 'Auth :: user() -> roleplay' before if? что он показывает? –

ответ

0

Просто поместите команду View :: share в метод boot() файла App \ Providers \ AppServiceProvider.php (будьте осторожны, чтобы изменить get() на first()).

Это промежуточное программное перенаправит если гость или goverment_id 0. Нет необходимости для второй, если ...

+0

Неужели почему этот ответ здесь, он ничего не меняет. Все равно получайте тот же результат. – Ashkru

 Смежные вопросы

  • Нет связанных вопросов^_^