thinkphp5 表单令牌

请问thinkphp5 的表单令牌怎么使用?官方手册讲的比较模糊,最好有个完整的流程。。。谢谢。

阅读 4k
2 个回答

大致流程如下:

视图层

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/test" method="post">
    {:token()}
    username:
    <input type="text" name="username">
    email:
    <input type="email" name="email">
    <input type="submit" value="submit">
</form>
</body>
</html>

验证器User

<?php

namespace app\index\validate;

use think\Validate;

class User extends Validate
{
    protected $rule = [
        'username'  => 'require|max:25|token',
        'email'     => 'email',
    ];
}

Controller层

<?php

namespace app\index\controller;

use think\Controller;
use think\Request;

class Index extends Controller
{
    public function index()
    {
        return view('index');
    }

    public function test(Request $request)
    {
        $result = $this->validate(
            [
                '__token__' => $request->param('__token__'),
                'username'  => $request->param('username'),
                'email'     => $request->param('email'),
            ],
            'app\index\validate\User'
        );
        if ($result !== true) {
            dump($result);
        } else {
            dump($request->param());
        }
    }
}

楼上的写的太详细了,给个赞!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题