添加删除按钮后并没有出现对应得按钮???

<li id="status-{{ $status->id }}">
    <a href="{{ route('users.show', $user->id )}}">
        <img src="{{ $user->gravatar() }}" alt="{{ $user->name }}" class="gravatar"/>
    </a>
    <span class="user">
    <a href="{{ route('users.show', $user->id )}}">{{ $user->name }}TTT</a>
  </span>
    <span class="timestamp">
    {{ $status->created_at->diffForHumans() }}
  </span>
    <span class="content">{{ $status->content }}</span>
    @can('destroy', $status)
    <form action="{{ route('statuses.destroy', $status->id) }}" method="POST">
        {{ csrf_field() }}
        {{ method_field('DELETE') }}
        <button type="submit" class="btn btn-sm btn-danger status-delete-btn">删除</button>
    </form>
    @endcan
</li>

上面已经添加了删除按钮
在姓名后面添加得TTT三个字母也有展示,我按照教程又过了一遍还是不显示,求教
file
希望各位能指个方向谢谢:pray:


-我试了下删除@can 及 @endcan 可以正常显示 但是在执行删除操作时
file

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

@sixwalker 参考这个讨论: Status::class 和 User::class 是什么意思,怎样理解?
\APP\Models\Status::class 其实就是字符串:\APP\Models\Status,这个你可以在代码中输出即可看到,所以注册的时候是以 \APP\Models\Status 为键注册的授权策略,而不是以 \App\Models\Status 为键注册的,当你 @can 进行授权校验的时候自然没有找到对应的授权验证,默认授权失败。注册授权策略需要与模型的命名空间一致,区分大小写。

5年前 评论
讨论数量: 11

检查 app/Policies/UserPolicy.php 中的代码

5年前 评论

@truesnow

file

敲的时候App->APP了,修改之后就行了,但是这个错了为啥不报错呢,linux环境啊
5年前 评论

@sixwalker 参考这个讨论: Status::class 和 User::class 是什么意思,怎样理解?
\APP\Models\Status::class 其实就是字符串:\APP\Models\Status,这个你可以在代码中输出即可看到,所以注册的时候是以 \APP\Models\Status 为键注册的授权策略,而不是以 \App\Models\Status 为键注册的,当你 @can 进行授权校验的时候自然没有找到对应的授权验证,默认授权失败。注册授权策略需要与模型的命名空间一致,区分大小写。

5年前 评论
Code_Er

@truesnow 兄弟我也遇上了同样的问题 但是我检查了一次注册策略哪里\App\Models\Status::class => \App\Policies\StatusPolicy::class \App\Models\ 这个命名空间都是一样头大写后面小写的 还是无效这其中还有其他原因导致吗?

5年前 评论
Code_Er

@truesnow

file

file

file
报错情况跟楼主一样

5年前 评论

我也曾经遇到过this action is unauthorized的问题,我是因为StatusController中的destroy方法的参数没有声明Status类型,只写了$status.

5年前 评论
Echos

多检查 说实话大部分错误是自己打错了 我这里一开始也是没有删除键 结果是自己打错了。。。

5年前 评论

也出现这个问题了。直接copy也一样。本章节是不是代码有问题啊。
问题在:
app/Providers/AuthServiceProvider.php

protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
\App\Models\User::class => \App\Policies\UserPolicy::class,
\App\Models\Status::class => \App\Policies\StatusPolicy::class,
];

5年前 评论

我也碰到了这个原因,照着这个攻略对比了半天,终于出现了,我不是大小写的问题。
我把/app/Policies/StatusPolicy.php里面的$user->id和$status->user_id打印了一下,发现一个是int一个是string。我就把下面的===改成了==就显示删除按钮了

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!