攻克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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
php explode函数实例代码
Feb 27 PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 PHP
php cookie工作原理与实例详解
Jul 18 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
PHP7 echo和print语句实例用法
Feb 15 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 PHP
php7中停止php-fpm服务的方法详解
May 09 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
PHP 开源框架22个简单简介
2009/08/24 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
php ajax实现文件上传进度条
2016/03/29 PHP
php字符串操作常见问题小结
2016/10/11 PHP
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
python去掉字符串中重复字符的方法
2014/02/27 Python
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
python基础知识小结之集合
2015/11/25 Python
Python线程同步的实现代码
2018/10/03 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
村创先争优活动总结
2014/08/28 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
民事和解协议书格式
2014/11/29 职场文书
舞出我人生观后感
2015/06/16 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python