攻克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文件上传实例详解!!!
Jan 02 PHP
php adodb连接不同数据库
Mar 19 PHP
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
php中定时计划任务的实现原理
Jan 08 PHP
php preg_replace替换实例讲解
Nov 04 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
PHP获取文件扩展名的4种方法
Nov 24 PHP
php ci 获取表单中多个同名input元素值的代码
Mar 25 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 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
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
高级Java程序员面试要点
2013/08/02 面试题
保安自我鉴定范文
2013/12/08 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
解决Oracle数据库用户密码过期
2022/05/11 Oracle