Laravel 拉雷维尔8“;“不需要”;验证规则

Laravel 拉雷维尔8“;“不需要”;验证规则,laravel,Laravel,我如何才能“告诉”laravel,如果带有验证规则“email”的电子邮件字段和带有验证规则“URL”的URL字段(例如,我希望用户放置其Facebook帐户链接但该字段不是必需的字段)不是必需的,并且如果为空则可以。我在所有数据库表列上都放置了nullable(),但我的验证规则仍然适用,就像它是必需的一样。下面是代码的部分 这是从迁移: $table->string('site_facebook')->nullable(); $table->

我如何才能“告诉”laravel,如果带有验证规则“email”的电子邮件字段和带有验证规则“URL”的URL字段(例如,我希望用户放置其Facebook帐户链接但该字段不是必需的字段)不是必需的,并且如果为空则可以。我在所有数据库表列上都放置了nullable(),但我的验证规则仍然适用,就像它是必需的一样。下面是代码的部分

这是从迁移

        $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格式无效”。)你能和我们分享你的表单代码吗?你有两次规则,第二次规则不能为空。这是正确的答案。