| = $product->id ?> |
= $product->getProductTypes()->name ?> |
= $product->name ?> |
= $product->price ?> |
= $product->active ?> |
= Tag::linkTo("products/edit/".$product->id, 'Edit') ?> |
= Tag::linkTo("products/delete/".$product->id, 'Delete') ?> |
创建以及更新一条数据记录
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
现在,让我们来看看如何使用CURD创建和更新一个记录。通过控制器的"new"和"edit"两个Action,我们可以提交数据输入。他们分别能过"create"和"save"两个Action来保存提交的数据。
译者注:说白了就是 newAction就是新建产品页面,点击右上角的Save按钮保存时,会调用createAction。同理....
在创建的情况下,我们把用户提交的数据和"products"这个产品实例进行绑定。
译者注:即把用户提交的数据通过绑定到model上,以实现保存到数据库的目的。
.. code-block:: php
id = $request->getPost("id", "int");
$products->product_types_id = $request->getPost("product_types_id", "int");
$products->name = $request->getPost("name", "striptags");
$products->price = $request->getPost("price", "double");
$products->active = $request->getPost("active");
//...
}
提交的数据被过滤,然后再赋值到对象的属性,保存时,我们就可以知道用户提交的数据有没有符合业务规则。同时,可以在 Products Model中实现验证。
.. code-block:: php
save()) {
//The store failed, the following messages were produced
foreach ($products->getMessages() as $message) {
$this->flash->error((string) $message);
}
return $this->forward("products/new");
} else {
$this->flash->success("Product was created successfully");
return $this->forward("products/index");
}
}
现在来说产品编辑部分,首先得保证数据库中有可编辑的数据:
.. code-block:: php
id);
Tag::displayTo("product_types_id", $product->product_types_id);
Tag::displayTo("name", $product->name);
Tag::displayTo("price", $product->price);
Tag::displayTo("active", $product->active);
}
通过 displayTo helper设置从数据库中取得的数据到页面,然后用户可以更改这些数据,然后再通过saveAction保存到数据库。
.. code-block:: php
getPost("id", "int");
$products = Products::findFirst("id='$id'");
if ($products == false) {
$this->flash->error("products does not exist ".$id);
return $this->forward("products/index");
}
//... assign the values to the object and store it
}
动态更改标题
------------------------------
当你浏览不同的控制器及动作时,网页标题会不同,如果更改标题呢,可以在每个控制器进行初始化:
.. code-block:: php
结束语
----------
本教程从各个方面讲解了如何使用Phalcon来创建一个应用程序,希望你也能提供示例程序,同时学习更多的内容。
.. _Github: https://github.com/phalcon/invo
.. _CRUD: http://en.wikipedia.org/wiki/Create,_read,_update_and_delete