如何在规则laravel中添加条件?

如何在规则laravel中添加条件?,laravel,laravel-5,request,laravel-5.3,rules,Laravel,Laravel 5,Request,Laravel 5.3,Rules,我的控制器是这样的: <?php use App\Http\Requests\StoreReceiveOrderRequest; class SellController extends Controller { public function receiveOrder(StoreReceiveOrderRequest $request) { dd($request->all()); ... } } 如果is_follow_u

我的控制器是这样的:

<?php
use App\Http\Requests\StoreReceiveOrderRequest;
class SellController extends Controller
{
    public function receiveOrder(StoreReceiveOrderRequest $request)
    {
        dd($request->all());
        ...
    }
}
如果is_follow_up=n,结果如下:

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreReceiveOrderRequest extends FormRequest
{
    public function rules()
    {
        return [
            'is_follow_up'=>'required',
            'note'=>'max:300' // I want to make this to be required if is_follow_up = n
        ];
    }
}
Array
(
    [is_follow_up] => y
)
Array
(
    [is_follow_up] => n
    [note] => test
)
如果is\u follow\u up=n,我想做一个注释是必需的

如果is_follow_up=y,则不需要注释

似乎必须在规则上增加条件


我该怎么做呢?

只需将验证更改为以下内容即可-

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
    class StoreReceiveOrderRequest extends FormRequest
    {
       public function rules()
       {
         $rules = ['is_follow_up'=>'required',
           ];

         if (Input::get('is_follow_up')=='n') {
          $rules += [
             'note'=>'max:300'
          ];
         }
       }
    }

有一条验证规则已经做到了这一点。用于验证的Laravel文档列出了所有可用规则

'note' => 'required_if:is_follow_up,n|...'

阅读Laravel文档以获取所有可用验证规则的列表

'note' => 'required_if:is_follow_up,n|...'

看来你能帮我。看看这个。这有点不同,你可以帮我。看看这个。这有点different@akramwahld我真的不明白在这里发布同样的答案有什么意义。。。2天later@lagbox,这不关你的事,我可以随时回答任何问题,而且很明显我没有违反SO规则,我不是在暗示有违反规则的行为,这不关我的事,抱歉造成混乱