亲,代码哪里有问题,加入
{!! Geetest::render() !!}
能正常显示,也能点击,打开浏览器控制台,有错误:[Vue warn]: Error compiling template:
Templates should only be responsible for mapping the state to the UI. Avoid placing tags with side-effects in your templates, such as <script>
, as they will not be parsed.
把渲染语句放在任何 div 标签里,都会报错,只有放在 div 之外才不报错。
这是什么情况?我不懂 vue
<body>
{!! Geetest::render() !!} <!-- 放在这里不会报错 -->
<div class="{{ route_class() }}-page" id="app">
@include('layouts._header')
{!! Geetest::render() !!} <!-- 放在这里报错 -->
<div class="container">
@yield('content')
</div>
@include('layouts._footer')
</div>
您好,楼主,您这里只是尝试到了现在那块验证的出来了,可是接下去登录的你没有弄出来,有点虎头蛇尾,由于跟着文档用的是脚手架,所以需要在 app/Http/Controllers/Auth/LoginController 里面添加验证的代码
代码如下:由于 LoginController 继承了 Controller , 所以在这里可以重写登录时的验证方法 validateLogin (tips:当然,你想重写 Login 登录方法我没意见,但我不建议)
protected function validateLogin(Request $request)
{
$result = $this->validate($request, [
$this->username() => 'required|string',
'password' => 'required|string',
'geetest_challenge' => 'required|string'
], [
'geetest_challenge.required' => config('laravel-geetest.client_fail_alert'),
'geetest_challenge.string' => config('laravel-geetest.server_fail_alert')
]);
}
这里有个坑,也是我未解决的,这里写完之后,前端验证不通过且后端会处理未验证不允许登录,但是报错未显示在前端,这我就不清楚怎么处理了~
前端的报错,未生效,代码如下:
@error('geetest_challenge')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
推荐文章: