【发布时间】:2017-01-28 14:02:51
【问题描述】:
我有一个 laravel 项目,我已经开始编写管理方面的代码。我创建了一个中间件来检查他们的government_id是否> 0,如果不是,他们将被重定向到被拒绝的页面。
中间件:
<?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> JuniorCP <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/business/overview"><i class="fa fa-briefcase"></i> Business</a></li>
</ul>
</li>
@endif
在尝试获取government_type 列时似乎会发生这种情况,但我不知道为什么,我认为您可以这样做 -> 列在集合上并获取该列,我错了吗?
任何可以帮助的人,谢谢。使用 Laravel 5.3
【问题讨论】:
-
government_type 是否包含在 Model 的可填充数组中?
-
受保护的 $fillable = [];我把它设置为一切。
-
你没有尝试在 if 语句之前转储
Auth::user()->roleplay吗?它显示了什么? -
这是一个大数组。我可以向你保证,这不是没有相关数据的任何数据库。
-
谢谢@jycr753 解决了我的问题!
标签: php database laravel laravel-5.3