php if require,关于php:required_if Laravel 5验证

我有一个表格,用户可以填写出售房屋的信息。 对于其中一项投入,用户必须选择"待售"或"待租"天气。 如果是For Sale,则会出现两个价格输入字段,如果是For Rent,则会基于jQuery显示一些其他价格输入字段。

我的问题是我想要价格字段,例如,但是如果我选择"用于出租",然后提交表单,它将给我一个错误,提示"用于销售"输入字段的价格字段 是必需的,即使它位于"用于出租"部分下。

我知道Laravel中有一个required_if,但是我只是不知道如何利用它。 这是我的财产要求。

namespace App\Http

equests;

use App\Http

equests

equest;

class PropertyRequest extends Request

{

/**

* 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 [

'list_type' => 'required',

'sale_price' => 'required', //

'rent_price' => 'required',

];

}

}

/ ******************编辑******************************* /

我现在所拥有的:

public function rules()

{

return [

'list_type'  => 'required',

'sale_price' => 'required_if:list_type:For Sale',

'rent_price' => 'required_if:list_type:For Rent',

}

但是当我提交表单时,我得到了这个错误:

2921ac489a03c4293ef094b3185c980d.png

测试的好地方是测试(v5.6):github.com/laravel/framework/blob/

假设list_type是选择框的名称(值:出售或出租)

用这种方式

"sale_price" =>"required_if:list_type,==,selling"

这是什么意思?

仅当list_type的值等于selling时才需要销售价格

对rent_price做同样的事情

编辑

public function rules()

{

return [

'list_type'  => 'required',

'sale_price' => 'required_if:list_type,==,For Sale',

'rent_price' => 'required_if:list_type,==,For Rent'

}

检查我的编辑,犯了一个错误,请立即尝试,如果这不起作用,请添加= =,例如sale_price" =>"required_if:list_type,==,selling"

您的评论的编辑部分有效。 谢谢。

上面的代码无关紧要,因为使用list_type => required时,没有必要编写下两个验证规则,因为始终需要它们,因为list_type也是required而不是sometimes 。

@lura Varzari我真的不明白你的意思,接下来的2条验证规则取决于第一个list_type的值:)如果list_type =="for sale"必须存在sale_price字段,否则其租金必须存在领域

您节省了我的时间@AchrafKhouadja,谢谢!

谢谢你的分享!

可能存在另一种情况,如果不存在其他字段,则将需要该要求,如果有人处于这种情况,则可以

'your_field.*' => 'required_unless:dependency_field.*,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值