攻克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如何将日志写进syslog
Jun 28 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
PHP输出XML格式数据的方法总结
Feb 08 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 11 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
js 页面输出值
2008/11/30 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
创建索引时需要注意的事项
2013/05/13 面试题
物理教育专业毕业生推荐信
2013/11/03 职场文书
2014村务公开实施方案
2014/02/25 职场文书
新闻稿格式范文
2015/07/18 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏