【发布时间】:2014-12-24 00:50:34
【问题描述】:
我正在尝试编写一个 .blade.php 视图:
- 显示用户个人资料信息
- 如果用户被禁止,显示消息“用户被禁止”。而是。
-
如果您以管理员身份登录(即,如果您具有“管理员”权限),则不要显示该消息,而是显示用户个人资料以及说明该用户已被禁止的额外信息。
这是我的看法:
@extends ('layout.main') @section('content') @if(! $throttle->banned==1) {{ $user->username }} <br> {{ $user->summoner_name }}<br><br> {{ $user->bio }}<br> {{ $user->punishments }}<br> @else {{ "This user is banned." }} @if(Sentry::getUser()->hasAccess('admin')) {{ $user->username }} <br> {{ $user->summoner_name }}<br><br> {{ $user->bio }}<br> {{ $user->punishments }}<br> {{ ($throttle->banned == 1) ? "User is banned." : '' }}<br> {{ $throttle->getSuspensionTime() }}<br> @endif @endif @stop
还有我的控制器:
<?php
class ProfileController extends BaseController {
public function main($username) {
try {
$throttle = Sentry::findThrottlerByUserLogin($username);
$user = User::where('username','=',$username);
if($user->count()) {
$user = $user->first();
return View::make('profile.main')
->with('user',$user)
->with('throttle',$throttle);
} else {
return App::abort(404);
}
}
catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
{
echo 'User not found.';
}
}
}
也就是说,每当我使用调试器时,我都会不断收到错误“调用非对象上的成员函数 hasAccess()”
@if(Sentry::getUser()->hasAccess('admin'))
语法对我来说看起来不错,所以我真的不明白为什么 Sentry 不将其识别为对象。会是什么呢?有没有简单的解决办法?
提前致谢!
【问题讨论】:
-
Cartalyst\Sentry\Users\UserNotFoundException一个异常的所有输入?
标签: php laravel blade cartalyst-sentry