攻克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中的(伪)多线程与多进程
Jul 01 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
完美解决thinkphp验证码出错无法显示的方法
Dec 09 PHP
php程序内部post数据的方法
Mar 31 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
微信红包随机生成算法php版
Jul 21 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 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实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
python显示天气预报
2014/03/02 Python
python之wxPython应用实例
2014/09/28 Python
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python实现购物程序思路及代码
2017/07/24 Python
python实现定时提取实时日志程序
2018/06/22 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
汽修专业学生自我鉴定
2013/11/16 职场文书
集团公司总经理岗位职责
2013/12/20 职场文书
小学作文评语大全
2014/04/21 职场文书
普通话宣传标语
2014/06/26 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
平安家庭事迹材料
2014/12/20 职场文书
六一晚会主持词开场白
2015/05/28 职场文书