如果验证失败,如何恢复表单的值(在Kohana 3中)

时间:2012-02-16 00:53:41

标签: php kohana kohana-3

官方文档http://kohanaframework.org/3.2/guide/kohana/security/validation

底部有一个示例

但是,只要在View中使用$post['username']但第一次请求时$post数组为空,它就不会对请求起作用。

那么在这种情况下如何恢复值呢?任何一般解决方案?

PS:是的,我知道我可以做isset($post['username']) ? $post['username'] : '';,但这只是烦人的

3 个答案:

答案 0 :(得分:2)

我使用Arr::get函数:

echo Form::input('name', Arr::get($post, 'name'))

答案 1 :(得分:2)

我使用模型在表单中显示数据。这样,初始形式值就是模型中的初始值。

然后我用控制器中的POST数据更新模型数据,如果有验证错误,模型数据将包含POST数据。这意味着我不必在视图中放置任何条件逻辑,我只是​​这样做:Form::input('name', $model->name)

以下是此方法的更详细说明:Kohana ORM and Validation, having problems

答案 2 :(得分:1)

我只是查看Building and Validating a Form上的旧文档。

您可以从示例代码中看到,首先需要使用表单字段名称作为键来初始化数组,并将值设置为空字符串。如果出现错误,请填写每个元素的值。在视图中,您只需简单地调用Form::input(),而无需任何if语句或某种类型。

我猜Kohana已经从一开始就以这种方式建造。它似乎没有改变。你可能只需要做同样的事情。