官方文档http://kohanaframework.org/3.2/guide/kohana/security/validation
底部有一个示例但是,只要在View中使用$post['username']
但第一次请求时$post
数组为空,它就不会对请求起作用。
那么在这种情况下如何恢复值呢?任何一般解决方案?
PS:是的,我知道我可以做isset($post['username']) ? $post['username'] : '';
,但这只是烦人的
答案 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已经从一开始就以这种方式建造。它似乎没有改变。你可能只需要做同样的事情。