gpt4 book ai didi

php - Laravel 验证 - 以逗号分隔的字符串输入为数组

转载 作者:行者123 更新时间:2023-12-04 01:41:18 24 4
gpt4 key购买 nike

如何使用多个值验证一个输入?我正在使用引导标签输入插件。它返回一个字段中的所有标签。我需要验证这个标签 - 独一无二。
首先,我试图将此标签放入数组中,然后在请求中对其进行验证,但仍然没有运气。
这是我的请求代码:

public function all()
{
$postData = parent::all();

// checkbox status
if(array_key_exists('keywords', $postData)) {

// put keywords into array
$keywords = explode(',', $postData['keywords']);

$test = [];
$i = 0;
foreach($keywords as $keyword)
{
$test[$i] = $keyword;
$i++;
}
$postData['keywords'] = $test;

}

return $postData;

}

public function rules()
{
$rules = [
'title' => 'required|min:3|unique:subdomain_categories,title|unique:subdomain_keywords,keyword',
'description' => '',
'image' => 'required|image',
'keywords.*' => 'min:3'
];

return $rules;
}

但是一旦关键字无效,我就会收到此错误:

helpers.php 第 531 行中的 ErrorException:
htmlentities() 期望参数 1 是字符串,给定数组。

任何想法有什么问题?

最佳答案

我在 5.4 上遇到了用逗号分隔的电子邮件的类似问题。这是我解决它的方法:

在您的请求类中,覆盖 prepareForValidation()方法(默认情况下不执行任何操作,顺便说一句),并分解逗号分隔的字符串。

/**
* @inheritDoc
*/
protected function prepareForValidation()
{
$this->replace(['keywords' => explode(',', $this->keywords)]);
}

现在你可以使用 Laravel 的普通 array validation !

由于我的案例也需要对消息更加明确,因此我还添加了一些属性和消息自定义。我做了 a gist ,如果你也感兴趣的话

关于php - Laravel 验证 - 以逗号分隔的字符串输入为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46613988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com