laravel 资源控制器的问题

发布于 2022-09-11 15:30:59 字数 1503 浏览 21 评论 0

1.laravel 新建了一个资源控制器

class UserController extends Controller
{

    public function index()
    {
        echo "i am index";
    }


    public function create()
    {
        echo "i am create";
    }

    public function store(UserRequest $request)
    {
        echo 'i am store';
    }

    public function show(User $user)
    {
        echo "i am show";
    }

    public function edit(User $user)
    {
        echo "i am  edit";
    }

    public function update(Request $request, User $user)
    {
        echo "i am update";
    }


    public function destroy(User $user)
    {
        echo "i am destroy";
    }
}

根据网上资源路由的对应,使用postman进行测试

clipboard.png

其他的接口都没有问题
测试post /user接口时,因为laravel post默认需要加csrf,不知道该怎么测试,按照百度将http/middleware/verifycsfToken.php 修改之后

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        //禁用laravel 默认的的post从 csrf检查
        'http://lblog.com/*'
    ];
}

不提示csrf的错误了,但是这个路由指向的却是edit方法

clipboard.png

有几个问题:
1.为什么会出现这种问题,不是应该访问store方法吗,为什么会访问edit?
2.在postman中的测试post方式时,应该怎么处理csrf的问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜妞爱困 2022-09-18 15:30:59

如果是做API服务器。把路由写在 routers/api.php 就好了

ゝ偶尔ゞ 2022-09-18 15:30:59

看错了,我去试下再来回答。

梦与时光遇 2022-09-18 15:30:59
  1. 第一个问题暂时不知为什么
  2. 第二个问题可以通过设置csrf白名单来解决,在except数组中可以是url也可以是路由名,以此可以免于csrf验证
class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'stripe/*',
        'http://example.com/foo/bar',
        'http://example.com/foo/*',
    ];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文