攻克CakePHP系列三 表单数据增删改


Posted in PHP onOctober 22, 2008

这里声明一点,上例中不小心把数据库表中lastupd字段错打成lastudp,本例子予以更正。

除上诉字段数据库与上例一致。

工程仍沿用上例,如下图:

攻克CakePHP系列三 表单数据增删改

代码依次为:

database.php:与上例一致。

companies_controller.php:

  1. <?php 
  2. class CompaniesController extends AppController
  3. {
  4.     var $name = 'Companies';
  5.     
  6.     function index()
  7.     {
  8.         $this->set('companies'$this->Company->findAll());
  9.     }
  10.     
  11.     function view($id = null)
  12.     {
  13.         $this->Company->id = $id;
  14.         $this->set('company'$this->Company->read());
  15.     }
  16.     
  17.     function add()
  18.     {
  19.         if (!emptyempty($this->data))
  20.         {
  21.             if ($this->Company->save($this->data))
  22.             {
  23.                 $this->flash('Your post has been saved.','/companies');
  24.             }
  25.         }
  26.     }
  27.     
  28.     function edit($id = null)
  29.     {
  30.         if (emptyempty($this->data))
  31.         {
  32.             $this->Company->id = $id;
  33.             $this->data = $this->Company->read();
  34.         }
  35.         else
  36.         {
  37.             if ($this->Company->save($this->data['Company']))
  38.             {
  39.                 $this->flash('Your post has been updated.','/companies');
  40.             }
  41.         }
  42.     }
  43.     
  44.     function delete($id)
  45.     {
  46.         $this->Company->del($id);
  47.         $this->flash('The post with id: '.$id.' has been deleted.''/companies');
  48.     }
  49. }
  50. ?>

company.php:

  1. <?php
  2. class Company extends AppModel
  3. {
  4.     var $name = 'Company';
  5.     
  6.     var $validate = array(
  7.         'company' => VALID_NOT_EMPTY,
  8.         'price'   => VALID_NOT_EMPTY,
  9.         'change'  => VALID_NOT_EMPTY,
  10.         'lastupd' => VALID_NOT_EMPTY
  11.     );
  12. }
  13. ?>

index.thtml:

  1. <h1>Test companies</h1>
  2. <table>
  3. <tr>
  4. <th>Id</th>
  5. <th>company</th>
  6. <th>price</th>
  7. <th>change</th>
  8. <th>last update</th>
  9. </tr>
  10. <?php foreach ($companies as $company): ?>
  11. <tr>
  12. <td><?php echo $company['Company']['id']; ?></td>
  13. <td>
  14. <?php echo $html->link($company['Company']['company'], "/companies/view/".$company['Company']['id']); ?>
  15.     
  16. <?php echo $html->link('Delete'"/companies/delete/{$company['Company']['id']}", null, 'Are you sure?')?>
  17. </td>
  18. <td><?php echo $company['Company']['price']; ?></td>
  19. <td><?php echo $company['Company']['change']; ?></td>
  20. <td><?php echo $company['Company']['lastupd']; ?></td>
  21. </tr>
  22. <?php endforeach; ?>  
  23. </table>
  24. <p>
  25. <?php echo $html->link('add'"/companies/add"); ?>
  26. </p>

view.thtml:

  1. <h1>Company: <?php echo $company['Company']['company']?></h1>
  2. <p><small>Id: <?php echo $company['Company']['id']?></small></p>
  3. <p>Price: <?php echo $company['Company']['price']?></p>
  4. <p>Change: <?php echo $company['Company']['change']?></p>
  5. <p>LastUpdate: <?php echo $company['Company']['lastupd']?></p>
  6. <br/>
  7. <p>
  8. <?php echo $html->link('edit'"/companies/edit/".$company['Company']['id']); ?>
  9. </p>

add.thtml:

  1. <h1>Add Company</h1>
  2. <form method="post" action="<?php echo $html->url('/companies/add')?>">
  3. <p>
  4. Company:
  5. <?php echo $html->input('Company/company'array('size' => '40'))?>
  6. <?php echo $html->tagErrorMsg('Company/company''Company is required.') ?>
  7. </p>
  8. <p>
  9. Price:
  10. <?php echo $html->input('Company/price'array('size' => '40'))?>
  11. <?php echo $html->tagErrorMsg('Company/company''Price is required.') ?>
  12. </p>
  13. <p>
  14. Change:
  15. <?php echo $html->input('Company/change'array('size' => '40'))?>
  16. <?php echo $html->tagErrorMsg('Company/change''Change is required.') ?>
  17. </p>
  18. <p>
  19. Last Update:
  20. <?php echo $html->input('Company/lastupd'array('size' => '40'))?>
  21. <?php echo $html->tagErrorMsg('Company/lastupd''Last Update is required.') ?>
  22. </p>
  23. <p>
  24. <?php echo $html->submit('Save') ?> <?php echo $html->link('return'"/companies/index"); ?>
  25. </p>
  26. </form>

edit.thtml:

  1. <h1>Edit Company</h1>
  2. <form method="post" action="<?php echo $html->url('/companies/edit')?>">
  3. <?php echo $html->hidden('Company/id'); ?>
  4. <p>
  5. Company:
  6. <?php echo $html->input('Company/company'array('size' => '40'))?>
  7. <?php echo $html->tagErrorMsg('Company/company''Company is required.') ?>
  8. </p>
  9. <p>
  10. Price:
  11. <?php echo $html->input('Company/price'array('size' => '40'))?>
  12. <?php echo $html->tagErrorMsg('Company/company''Price is required.') ?>
  13. </p>
  14. <p>
  15. Change:
  16. <?php echo $html->input('Company/change'array('size' => '40'))?>
  17. <?php echo $html->tagErrorMsg('Company/change''Change is required.') ?>
  18. </p>
  19. <p>
  20. Last Update:
  21. <?php echo $html->input('Company/lastupd'array('size' => '40'))?>
  22. <?php echo $html->tagErrorMsg('Company/lastupd''Last Update is required.') ?>
  23. </p>
  24. <p>
  25. <?php echo $html->submit('Save') ?> <?php echo $html->link('return'"/companies/index"); ?>
  26. </p>
  27. </form>

如此访问http://localhost/cakephp/companies即可测试代码。

PHP 相关文章推荐
php 前一天或后一天的日期
Jun 28 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
php学习笔记之基础知识
Nov 08 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 #PHP
CakePHP去除默认显示的标题及图标的方法
Oct 22 #PHP
攻克CakePHP系列一 连接MySQL数据库
Oct 22 #PHP
PHP 反射机制实现动态代理的代码
Oct 22 #PHP
PHP中函数内引用全局变量的方法
Oct 20 #PHP
sqlyog 中文乱码问题的设置方法
Oct 19 #PHP
mysql5的sql文件导入到mysql4的方法
Oct 19 #PHP
You might like
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
TensorFlow实现简单卷积神经网络
2018/05/24 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
python reverse反转部分数组的实例
2018/12/13 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
Python原始套接字编程实例解析
2020/01/29 Python
Python restful框架接口开发实现
2020/04/13 Python
Python如何获取文件指定行的内容
2020/05/27 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
银行服务感言
2014/03/01 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
民事答辩状格式范文
2015/05/21 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
南京大屠杀观后感
2015/06/02 职场文书