我开始学习Laravel,仍然在学习曲线上。现在我开始使用Laravel 3,但是一旦我找到工作,最有可能将我的项目切换到Laravel 4。 现在的问题是,如何验证复选框数组,我想验证组中至少有1个是启用(选中)。我在Laravel论坛上读过一段,我们只是使用必要的验证它们,但是当我dd(input::all())
我没有看到其他东西,但输入字段和复选框不是其中的一部分...Laravel 3 - 如何验证复选框数组,至少检查1个?
我的刀片的一部分创建代码对于复选框:
<label class="checkbox">{{ Form::checkbox('changeReasons[]', 'ckbCRCertification', Input::had('ckbCRCertification'), array('id' => 'ckbCRCertification')) }} Certification</label>
<label class="checkbox">{{ Form::checkbox('changeReasons[]', 'ckbCRDesignCorrection', Input::had('ckbCRDesignCorrection'), array('id' => 'ckbCRDesignCorrection')) }} Design Correction</label>
我控制器(REST)的代码是:
public function post_create()
{
print "Inside the post_create()";
// validate input
$rules = array(
'ecoNo' => 'min:4',
'productAffected' => 'required',
'changeReasons' => 'required'
);
$validation = Validator::make(Input::all(), $rules);
if($validation->fails())
{
return Redirect::back()->with_input()->with_errors($validation);
}
$eco = new Eco;
$eco->ecoNo = Input::get('ecoNo');
$eco->productAffected = Input::get('productAffected');
$eco->save();
return Redirect::to('ecos');
}
我也想知道获得的复选框状态的验证失败后的正确的代码,我想我看到了Input::had(checkBoxName)
某处但那不是似乎工作,我可能没有正确使用它,我有点混淆,因为我看到的所有示例都是针对输入而没有其他内容。我假设L4中的验证大致相同,是吗?
或者你可以像使用Input :: get('foo',0);' – 2013-05-02 06:39:40
那样使用默认的回退,但是我怎样才能让我的'Validator'检查并通过'return Redirect: :back_() - > with_input() - > with_errors($ validation);'我希望它成为我的验证的一部分,而不是作为额外的输入,如果可能的话我不能在同一时间返回 – ghiscoding 2013-05-02 13:27:24
我想我我开始明白你为什么要这样使用它,现在你写的代码可以用于单个复选框名称,但在我的情况下,我使用复选框数组,所以如何检索我的复选框的代码1生活检查?我尝试了一些类似于'Input :: get('changeReasons [ckbCRCertification]',0)'的方法,但是这样做不起作用,因为'get'只能用单键而不用数组。那么如何知道我的复选框是否启用呢? – ghiscoding 2013-05-02 22:23:09