在 Laravel 中验证多个用户生成的标签
Posted
技术标签:
【中文标题】在 Laravel 中验证多个用户生成的标签【英文标题】:Validating multiple user generated tags in Laravel 【发布时间】:2017-05-26 18:43:44 【问题描述】:在我的网站上,我允许用户上传图片。除了这些图片,用户还可以为图片添加标签。
在这里找到小提琴演示: https://jsfiddle.net/cn9nqfj3/4/
不过,我有两个问题。
首先,我怎么能像请求的其余部分一样通过它?
例如,在我的控制器验证中,我有:
$this->validate($request, [
'title' => 'required|max:40|min:2|string',
'mature' => 'required',
'categorie' => 'required',
'description' => 'string|max:2000',
'fileUpload' => 'required|image',
'tag' => 'max:20|alpha_num',
]);
但是标签是如何工作的呢?
添加标签时,生成的标记如下:
<span class="tag"><span class="close">×</span>#tag1</span>
<span class="tag"><span class="close">×</span>#tag2</span>
所以我不确定如何将其传递给验证,因为它不是常规的表单元素。
第二个问题是验证如何处理多个标签。
我是否需要类似 foreach 构造的东西来检查我是否不超过标签数量限制,然后针对字母数字之类的东西逐一验证它们?
【问题讨论】:
【参考方案1】:您需要输入作为输入数组。
IE<input type="text" name="tag[]">
要获得此信息,您必须寻找从 javascript 标签插件中获取信息的方法。大多数标签插件都有这个方法,或者会为你生成输入字段。
在 Laravel 中,您可以验证数组,请参阅 https://laravel.com/docs/5.3/validation#validating-arrays
你的最后一行是'tag.*' => 'max:20|alpha_num',
【讨论】:
谢谢!尽管切换到 select2 插件,您的回答还是有很大帮助。【参考方案2】:或者你可以使用在这个 laracast 系列剧集中讨论的 select2 插件...... https://laracasts.com/series/laravel-5-fundamentals/episodes/24
【讨论】:
这并没有直接回答我的问题,但我最终接受了你的回答,所以我想我会接受你的。谢谢。以上是关于在 Laravel 中验证多个用户生成的标签的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 身份验证期间附加到用户创建多个复选框
Laravel 通过生成的令牌进行身份验证,无需护照和 jwt