📜  laravel required_with - PHP (1)

📅  最后修改于: 2023-12-03 15:02:35.482000             🧑  作者: Mango

Laravel Required_with - PHP

在Laravel中,required_with是一个验证规则,它要求在给定字段中至少有一个字段填写。

如何使用

在表单验证中使用required_with规则非常简单。假设我们有一个表单如下:

<form method="POST" action="/example">
    <input type="text" name="email">
    <input type="text" name="phone">
    <input type="text" name="name">
    <button type="submit">Submit</button>
</form>

现在,我们想要验证提交的表单是否包含emailphone字段中至少一个字段填写。我们可以使用以下方式来进行验证:

use Illuminate\Http\Request;

public function example(Request $request)
{
    $validatedData = $request->validate([
        'email' => 'required_with:phone',
        'phone' => 'required_with:email',
        'name' => 'required',
    ]);
}

在这个例子中,我们只需要在emailphone字段中至少有一个字段填写,否则验证将失败。

更多用法
required_with_all

required_with_all规则要求在给定字段中所有列出的字段都必须存在,否则验证将失败。例如:

$validatedData = $request->validate([
    'email' => 'required_with_all:phone,address',
    'phone' => 'required_with_all:email,address',
    'address' => 'required_with_all:email,phone',
]);

在这个例子中,emailphone字段中必须至少填写一个,并且address字段必须在三个字段中都存在。

required_without

required_without规则相反,要求给定的字段都不存在或都为空,否则验证将失败。例如:

$validatedData = $request->validate([
    'email' => 'required_without:phone',
    'phone' => 'required_without:email',
]);

在这个例子中,emailphone字段中必须只有一个字段填写,否则验证将失败。

required_without_all

类似于required_withrequired_without_all要求给定字段中所有列出的字段都不存在或都为空,否则验证将失败。例如:

$validatedData = $request->validate([
    'email' => 'required_without_all:phone,address',
    'phone' => 'required_without_all:email,address',
    'address' => 'required_without_all:email,phone',
]);

在这个例子中,emailphone字段中都不填写、或者只填写一个并且address字段不存在或为空时,验证才会通过。

结论

使用required_with验证规则可以在需要时确保表单字段中至少有一个字段填写。除了这个基本用法,它也有一些更进阶的用法,可以让你根据特定的条件来验证表单字段。