mysql - 如何限制普通用户创建和更新书籍?
问题描述
我在一个实现书籍 crud 的项目中实现用户角色。我希望只有管理员可以创建、更新和删除书籍。在我的 app.blade.php 中,我编写了以下代码
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@if (Auth::guest())
<li><a href="{{ url('/login') }}">Login</a></li>
<li><a href="{{ url('/register') }}">Register</a></li>
@else
@if(auth()->user()->hasRole('User'))
<li>
<a href=""> User </a>
</li>
@endif
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="{{ url('/logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
Logout
</a>
<form id="logout-form" action="{{ url('/logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
</li>
</ul>
</li>
<li><a href="{{ url('/books/index') }}">Books</a></li>
@if(auth()->user()->hasRole('admin'))
<li><a href="{{ url('/categories/index') }}">Categories</a></li>
<li><a href="{{ url('/authors/index') }}">Authors</a></li>
<li><a href="{{ url('/publishers/index') }}">Publishers</a></li>
@endif
@endif
</ul>
</div>
当我以用户身份登录时,它只给我书籍视图,但是当我将http://127.0.0.1:8000/books/create放在浏览器中时,它会将我带到创建书籍视图并创建书籍
但我希望如果我以用户身份登录,那么我将无法创建或更新书籍。我该如何解决这个问题?
解决方案
Try This code.
I think you are using auth() in blade Try AUth() in your if condition.
@if(Auth()->user()->hasRole('admin'))
<li><a href="{{ url('/categories/index') }}">Categories</a></li>
<li><a href="{{ url('/authors/index') }}">Authors</a></li>
<li><a href="{{ url('/publishers/index') }}">Publishers</a></li>
@endif
Other Possibility is:
First add is_admin column in your migration
public function up()
{
Schema::create('user', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->boolean('is_admin')->default(0);
$table->rememberToken();
$table->timestamps();
});
Then you can check
@if($user->is_admin)
@endif
推荐阅读
- python - 如何在 python 中使用 mechanize 发送带有 post 请求的原始 JSON 数据
- c++ - 激活上下文生成失败,依赖程序集,并排,事件 ID 33
- ruby-on-rails - jbuilder 视图呈现与布局
- c# - 在 .NET 中解析 URI
- laravel - 即使计数为 0,也返回年份计数
- gatsby - 如何使用 Gatsby + Netlify CMS 正确提供国际化
- reactjs - 执行 create-react-app 会出错
- angular - 使用 ngx-datepicker 更改 [(ngModel)] 上的日期格式
- c# - 使用 BouncyCastle 和 C# 将证书添加到 HTTPS 调用
- powershell - 无法将文件夹内容从一台服务器复制到服务器列表