Laravel 拉雷维尔8“;“不需要”;验证规则
我如何才能“告诉”laravel,如果带有验证规则“email”的电子邮件字段和带有验证规则“URL”的URL字段(例如,我希望用户放置其Facebook帐户链接但该字段不是必需的字段)不是必需的,并且如果为空则可以。我在所有数据库表列上都放置了nullable(),但我的验证规则仍然适用,就像它是必需的一样。下面是代码的部分 这是从迁移:Laravel 拉雷维尔8“;“不需要”;验证规则,laravel,Laravel,我如何才能“告诉”laravel,如果带有验证规则“email”的电子邮件字段和带有验证规则“URL”的URL字段(例如,我希望用户放置其Facebook帐户链接但该字段不是必需的字段)不是必需的,并且如果为空则可以。我在所有数据库表列上都放置了nullable(),但我的验证规则仍然适用,就像它是必需的一样。下面是代码的部分 这是从迁移: $table->string('site_facebook')->nullable(); $table->
$table->string('site_facebook')->nullable();
$table->string('site_instagram')->nullable();
$table->string('site_twitter')->nullable();
$table->string('site_linkedin')->nullable();
$table->string('site_behance')->nullable();
$table->string('site_dribbble')->nullable();
$table->string('site_email')->nullable();
'site_facebook' => 'url',
'site_facebook' => 'url',
'site_instagram' => 'url',
'site_twitter' => 'url',
'site_linkedin' => 'url',
'site_behance' => 'url',
'site_dribbble' => 'url',
'site_email' => 'email',
此部分来自验证:
$table->string('site_facebook')->nullable();
$table->string('site_instagram')->nullable();
$table->string('site_twitter')->nullable();
$table->string('site_linkedin')->nullable();
$table->string('site_behance')->nullable();
$table->string('site_dribbble')->nullable();
$table->string('site_email')->nullable();
'site_facebook' => 'url',
'site_facebook' => 'url',
'site_instagram' => 'url',
'site_twitter' => 'url',
'site_linkedin' => 'url',
'site_behance' => 'url',
'site_dribbble' => 'url',
'site_email' => 'email',
所以,结束我的问题。我希望我的URL和电子邮件字段是可选的(不是必需的:)
编辑
因为有一些答案,没有人为我工作,我只想提一下(如果它确实与之相关),我所有的验证规则都在一个单独的请求中
class ManageSiteSettingsRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'site_name' => 'required|max:50',
'site_facebook' => 'nullable|url',
'site_facebook' => 'url',
'site_instagram' => 'url',
'site_twitter' => 'url',
'site_linkedin' => 'url',
'site_behance' => 'url',
'site_dribbble' => 'url',
'site_email' => 'email',
'site_creator_link' => 'url',
];
}
}
表格如下:
@extends('layouts.admin')
@节(“内容”)
站点设置
@include('includes.\u errors')
@包括('includes.\u sessions')
@csrf
站点名称
站点描述
{!!$settings->site\u description!!}
网站facebook页面
网站instagram页面
网站推特页面
网站linkedin页面
网站行为页面
站点可滴页面
站点电子邮件
第一个页脚字段标题
第一个页脚字段值
{{$settings->site_field_one_value}
第二个页脚字段标题
第二个页脚字段值
{{$settings->site\u field\u two\u value}
第三个页脚字段标题
第三个页脚字段值
{{$settings->site\u field\u three\u value}
第四个页脚字段标题
第四个页脚字段值
{{$settings->site\u field\u four\u value}
网站版权
网站创建者名称
网站创建者页面
更新网站设置
@include('includes.\u errors')
@endsection您可以使用可为空的规则 如以下示例所示:
'site_facebook' => 'url|nullable',
使用
有时
@KamleshPaul它对我不起作用:3当字段为空时,它仍然进行验证对我不起作用:3Did您尝试在您的验证数组中添加nullable吗?是的,我在网站上添加了它_facebook=>url | nullable,然后提交表单以检查它是否仍然得到验证,并且确实如此(我进行了错误检查,它显示了一条消息“网站facebook格式无效”。)你能和我们分享你的表单代码吗?你有两次规则,第二次规则不能为空。这是正确的答案。