laravel - 使用 GET 方法进行请求验证在 Laravel 8 中不起作用 - Recaptcha
问题描述
我正在尝试将recaptcha 集成到查询表单中,其中用户只输入一条数据并返回从数据库中提取的结果。
我正在使用 https://github.com/anhskohbo/no-captcha
但是需要控制器进行验证 类似这样的内容出现在您的文档中
$validate = Validator::make(Input::all(), [
'g-recaptcha-response' => 'required|captcha'
]);
为 Laravel 8 调整了但由于我的表单是 GET 方法,我不能使用验证,所以我用你的智慧来实现与 recaptcha 的集成
这是我的 ListadoRequest
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ListadoRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'texto' => 'required',
'g-recaptcha-response' => 'required|captcha',
];
}
}
这是我的控制器:
namespace App\Http\Controllers;
use App\Models\Listado;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Requests\ListadoRequest;
class ListadoController extends Controller
{
public function index(ListadoRequest $request){
$validated = $request->validated();
//other code
}
这是我的 web.php
Route::get('/busqueda', [ListadoController::class, 'index'])->name('busqueda');
当我尝试输入表单时,它没有输入并停留在主页上
如果我删除验证行并更改ListadoRequest
为Request
我访问我的表单但显然验证码是一个谎言,因为它不是必需的
更新我的观点
<form action="{{route('busqueda')}}" method="get">
<input type = "text" class="form-control" name="texto" value="{{$texto}}" >
<br>
{!! NoCaptcha::display() !!}
<input type=submit class="btn btn-primary" value= "Buscar">
</form>
请帮助:(
解决方案
推荐阅读
- streamlit - Streamlit 应用部署:参考图片和文件
- go - 如何简单地打印原始 json 字符串?
- r - 如何解决此错误:词法错误:json 文本中的无效字符。?
- mysql - Discord.js SQL(更新)在最后一次查询之前查询表
- python-3.x - 没有名为 distutils 的模块....但是安装了 distutils 吗?
- drupal-7 - 带有 $menu_tree 的下拉菜单
- r - R Dataframe:当其他两个值匹配时组合行/值
- javascript - 在不使用 YouTube API 的情况下更改当前 YouTube 视频时间
- catboost - 同时对多个目标进行分位数回归
- go - 如果处理程序不返回,golang中的grpc流会导致内存/性能问题