我有过
类用户表
+==============+ | User | +==============+ | id | +--------------+ | firstname | +--------------+ | lastname | +--------------+ | email | +--------------+ | password | +--------------+
还有我的角色表
+==============+ | Roles | +==============+ | id | +--------------+ | name | +--------------+
而我的角色用户表是
+=============+ | role_user | +=============+ | user_id | +-------------+ | role_id | +-------------+
如何检查当前登录的用户是管理员还是普通用户?
角色php
use Illuminate\Database\Eloquent\Model;
class Role extends Model {
protected $fillable = [
'name'
];
/**
* A role can have many users.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function users() {
return $this->belongsToMany('App\User');
}
}
然后,您可以将其添加到用户模型:
public function isAdmin()
{
foreach ($this->roles()->get() as $role)
{
if ($role->name == 'Admin')
{
return true;
}
}
}
查看
@if(Auth::check())
@if (Auth::user()->isAdmin())
<h2>Admin user enter code here<h2>
@endif
@endif
它不是用于此简单功能的ACL您甚至不需要数据库表角色
您可以添加额外的tinyInteger
状态
列并添加数字,例如:
要使其功能化,请在您的User.php
中添加以下代码。
public function isDisabled ()
{
return $this->statusCheck();
}
public function isVisitor ()
{
return $this->statusCheck(1);
}
public function isAdmin ()
{
return $this->statusCheck(2);
}
protected function statusCheck ($status = 0)
{
return $this->status === $status ? true : false;
}
要签入blade
模板,您可以添加
@if(Auth::user()->isDisabled())
You are not Active
@elseif(Auth::user()->isVisitor())
Welcome to example.com
@elseif(Auth::user()->isAdmin())
Welcome Admin
@endif
此外,您还可以制作刀片自定义指令,将此代码粘贴到app/providers/AppServiceProvider。php
在boot()方法中。
// Blade custom directives for isAdmin
Blade::directive('isAdmin', function() {
return "<?php if(Auth::user()->isAdmin()): ?>";
});
Blade::directive('endisAdmin', function() {
return "<?php endif; ?>";
});
// Blade custom directives for isVisitor
Blade::directive('isVisitor', function() {
return "<?php if(Auth::user()->isVisitor()): ?>";
});
Blade::directive('endisVisitor', function() {
return "<?php endif; ?>";
});
// Blade custom directives for isDisabled
Blade::directive('isDisabled', function() {
return "<?php if(Auth::user()->isDisabled()): ?>";
});
Blade::directive('endisDisabled', function() {
return "<?php endif; ?>";
});
要调用它,您需要在
blade视图中写入以下行
@isAdmin()
Welcome Admin
@endisAdmin
@isVisitor()
Welcome to example.com
@endisVisitor
@isDisabled()
Your are not active
@endisDisabled
简而言之,laravel为您提供了许多解决问题的方法,这取决于您的需求和应用程序结构。
您需要在用户
模型中添加角色
关系,如下所示:
public function roles()
{
return $this->belongsToMany(App\Role::class);
}
现在您需要创建isAdmin
用户,如下所示:
public function isAdmin()
{
return in_array(1, $this->roles()->pluck('role_id')->all());
}
作为1
,输入管理员角色的id。当然,它也可以用其他方式定义,但一切都取决于它将如何使用。
也可以这样定义:
public function isAdmin()
{
return $this->roles()->where('role_id', 1)->first();
}
现在,在刀片中,您可以执行以下操作:
@if (auth()->check())
@if (auth()->user()->isAdmin())
Hello Admin
@else
Hello standard user
@endif
@endif
所以,我正在尝试检查用户是否在某个消息中被@过。这就是我目前拥有的: (它包装在客户端中。当检测到消息发送时) 我在这里做错了什么?
我在显示管理视图时遇到一个小问题。我搜索了一下,但没有找到好的解决办法。我有一个会议桌,它存储两个不同用户的ID,并根据登录的用户显示记录。 我分配给变量
超级管理员、管理员和用户。超级管理员可以为用户和管理员创建用户名、密码和用户类型(单选按钮)。我想做的是,当我输入登录用户名和密码时,系统将自动知道该用户是管理员或用户。如何获取已插入sql db的单选按钮的数据 如何获取已经存储在sql db中的用户类型(单选按钮)的数据。然后将其放入if条件。如果我的问题是正确的,但我想要的是区分用户和管理员。谢谢!输出 MainActivity.java 输
问题内容: 目前这是我的看法 这是输出 我想展示这样的东西 问题答案: 很简单 首先将解码后的变量发送到视图(请参见Laravel Views): 然后只需使用常见的刀片构造(请参见Laravel模板制作):
我偶尔收到以下信息: 这发生在具有表的页面中,其中的行延伸到视点之后。 我用来在表中选择随机行的方法 是否有一种方法来检查是否有元素在#Focus之后?
我有变量 ,我想检查变量是否在laravel刀片文件中设置。我已经尝试作为 但是没有运气。如何检查变量设置或没有在Laravel5.3刀片文件。