|
楼主 |
发表于 2008-1-13 09:44:11
|
显示全部楼层
<续>
One thing to note about our model is that most of the methods use return $this;. This allows chaining:
对于这个 model 需要注意的一件事是大部分方法是用返回 $this; 。这允许链式写法:
PHP复制代码 <?php
$form = $this->load->model('form', TRUE)
->title('User Login')
->action('user/login');
?>
复制代码
All of the form methods except validate and build can be chained together.
所有的表单方法,除了验证和生成[build],可以链在一起。
The View
外观
In order to display our form, we need a view. By default, the model will load a view called kohana_form, but you are free to change the default name, or use a custom template with the generate($template_name) method.
为了显示我们的表单,我们需要一个外观。默认情况下,该 model 会夹在一个叫做 kohana_form 的外观,但是你可以随意更改默认的名字,或者通过方法 generate($template_name) 使用一个自定义的模板。
PHP复制代码
<?php echo form ::open($action)?>
<h4> <?php echo $title ?></h4>
<ul>
<?php
foreach ($inputs as $name => $data):
// Generate label
// 生成 label
$label = empty($data['label'])
? ''
: form ::label($name, arr ::remove('label',$data)) . "\n";
// Generate error
// 生成错误
$error = arr ::remove('error', $data);
// Set input name and id
// 设置名称和id
$data['name'] = $name;
if (!empty($data['options'])) {
// Get options and selected
// 获取设置和选项
$options = arr ::remove('options', $data);
$selected = arr ::remove('selected', $data);
// Generate dropdown
// 生成下拉菜单
$input = form ::dropdown($data, $option, $selected);
} else {
switch(@data ['type']) [
case 'textarea':
// Remove the type, textarea doesn't need it
// 不需要textarea类型,移除
arr ::remove('type', $data);
$input form ::textarea($data);
break;
case 'submit':
// Generate a submit button
// 生成提交按钮
$input = form ::button($data);
break;
default:
// Generate a generic input
// 生成常规的 input
$input = form ::input($data);
break;
}
}
?>
<li>
<?php echo $label . $input . $error; ?>
</li>
<?php endforeach ?>
</ul>
<?php echo form ::close()?>
复制代码
This file is included in Kohana by default as system/views/kohana_form.php. You can override the default form by creating application/views/kohana_form.php.
这个文件 system/views/kohana_form.php 是 Kohana 默认包含的文件。你可以通过创建 application/views/kohana_form.php 来覆盖默认文件。
That concludes the entire tutorial. From here, you can expand the Form model to handle database connections, or even extend the model with another model, to handle specific forms. You can modify the view to suit your preferred way of templating forms, or use a custom view for specific forms.
这里包含了全部的教程。从这里,你可以拓展表单模型进行数据库交互,或者通过另外一个模型来拓展此模型来处理特殊的表单。你可以修正外观以适合你的表单,或者为特殊表单使用自定义外观。
For more information about handling database interaction in your forms, I recommend looking at the Model Validation tutorial.
若需要更多的关于在表单中应用数据库交互的信息,我建议你看看Model Validation tutorial。
Questions or Comments?
Feel free to send me questions and comments, my email address is woody.gilk@kohanaphp.com.
有问题或者需要讨论?
随便发给我就行了,我的email地址:woody.gilk@kohanaphp.com
题外话:
这是我现阶段翻译 Kohana 官方教程的最后一篇,
因为其他的几篇和 Kohana 的编程无直接关系,
其中,第三篇教程 xss 攻击的防范,基本上可以不考虑官方的方法,因为太费资源。
以及后面两篇,
第七篇教程,如何去除 index.php ,这个在所有框架都是类似的,在本论坛 ci 版里已经有中文教程。
第八篇教程,多国语言版网站的设立,有这个需求的大大们就不需要我来翻译了,呵呵。
祝你学习愉快,再会:) |
|