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

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

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

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

代码依次为:

database.php:与上例一致。

companies_controller.php:

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

company.php:

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

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. <?php echo $html->link('Delete', "/companies/delete/{$company['Company']['id']}", null, 'Are you sure?')?>
  16. </td>
  17. <td><?php echo $company['Company']['price']; ?></td>
  18. <td><?php echo $company['Company']['change']; ?></td>
  19. <td><?php echo $company['Company']['lastupd']; ?></td>
  20. </tr>
  21. <?php endforeach; ?>  
  22. </table>
  23. <p>
  24. <?php echo $html->link('add', "/companies/add"); ?>
  25. </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即可测试代码。

(0)

相关推荐

  • Cakephp 执行主要流程

    加载基本文件 cake/basics.php 里面定义了常用的方法以及时间常量 $TIME_START = getMicrotime(); 记录开始执行时间 cake/config/paths.php 里面定义一些基本路径 cake/lib/object.php cake的基本类 cake/lib/inflector.php 这里主要是处理单复数,带下划开命名以及驼峰式命名 cake/lib/configure.php 里面提供文件配置的读写,路径的设置,以及加载文件的方法 cake/lib/c

  • cakephp2.X多表联合查询join及使用分页查询的方法

    本文实例讲述了cakephp2.X多表联合查询join及使用分页查询的方法.分享给大家供大家参考,具体如下: 格式化参数: public function getconditions($data){ $this->loadModel("Cm.LoginHistory"); $conditions = array(); foreach ($data as $key=>$val){ if($key=='start_date'){ $conditions['LoginHistor

  • 攻克CakePHP系列二 表单数据显示

    首先建立数据库cake_ext,并执行如下sql文: CREATE TABLE `companies` ( `id` int(11) NOT NULL auto_increment, `company` varchar(50) NOT NULL, `price` decimal(8,2) NOT NULL, `change` decimal(8,2) NOT NULL, `lastudp` date NOT NULL, PRIMARY KEY  (`id`) ) ENGINE=MyISAM AU

  • Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例

    Yii的Nginx rewrite 如下为nginx yii的重写 server { set $host_path "/data/site/www.jb51.net"; access_log /data/logs/nginx/www.jb51.net_access.log main; server_name jb51.net www.jb51.net; root $host_path/htdocs; set $yii_bootstrap "index.php"; #

  • 配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境

    1. 安装配置Apahce 安装配置Apache是比较简单的, 跟着安装向导一步步往下走就能搞定.最多就是在配置端口的地方需要注意一下,如果已经安装了其它Web服务器占用了80端口,那记得配置的时候选一个别的端口.向导中忘了设置,在Apache的conf/httpd.conf中修改下面这句就好: Listen 127.0.0.1:80 2. 安装配置PHP5 PHP5也是一路安装就完了.要让Apache能解释PHP页面,继续修改Apache的conf/httpd.conf文件. 首先,假设PHP

  • 攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍第1/2页

    CakePHP框架首页: http://www.cakephp.org/ 下载后导入工程中,目录结构如下图(使用版本:1.1.19.6305) 搭建PHP环境,这里使用了AppServ2.5.9. 下载主页 http://www.appservnetwork.com/ MySQL中新建数据库blog,并运行如下SQL文建表. /**//* First, create our posts table: */CREATE TABLE posts (    id INT UNSIGNED AUTO_I

  • cakephp打印sql语句的方法

    本文实例讲述了cakephp打印sql语句的方法.分享给大家供大家参考.具体实现方法如下: 将以下语句复制到你的代码中,可以打印出在这之前所有的sql语句: $sources = ConnectionManager::sourceList(); if (!isset($logs)): $logs = array(); foreach ($sources as $source): $db =& ConnectionManager::getDataSource($source); if (!$db-

  • CakePHP框架Session设置方法分析

    本文实例讲述了CakePHP框架Session设置方法.分享给大家供大家参考,具体如下: CakePHP Session 存储选项 CakePHP提供给用户了3种Session数据保存方式: 1. CakePHP安装目下的临时文件; 2. 采用PHP的默认机制; 3. 或者序列化到数据库中. 对应的设置在core.php中分别为: define('CAKE_SESSION_SAVE', 'php'); # 设置为 'cake',保存session到 /cakedistro/tmp目录 # 设置为

  • 初学CAKEPHP 基础教程

    CAKEPHP是美国团队开发的一个系统,大家在找CAKEPHP资料的时候去GOOGLE搜索的资料精确些!或者去官方网站上去查!官方网址是www.cakephp.org! 首先我们来讨论一下为什么要用CAKEPHP!cakephp继承了rails的优点!开发效率高!易于维护!组件多!http://bakery.cakephp.org/categories/view/5这些组件足够满足你系统的需要!有时间大家去这个网站上看看!为界面程序易于开发!更改模板为html格式!经过修改后的支持ctp和htm

  • 初品cakephp 入门基础

    首先来看一下cakephp的的执行流程(从百度百科借来的图片): 1:首先你的服务器必须支持rewrite,如果是不支持rewrite的虚拟主机的话cakephp是不能正常运行的. 2:将所有的请求定向到cakephp框架后就进入了框架的route,cakephp带有一套默认的分发规则(例如:http://--/test/test,在不做任何route配置的情况下cakephp会自动执行test_controller控制器中的test方法). 我们可以通过配置route的方式将任何请求指向我们所

  • 攻克CakePHP系列一 连接MySQL数据库

    先阅读这个http://www.jb51.net/article/16244.htm接下来将一步一步对这个框架进行说明. 首先是下载框架:官方主页:http://cakephp.org/下载地址:http://cakeforge.org/frs/?group_id=23&release_id=428官方文档:http://book.cakephp.org/view/305/The-Manual第三方介绍:http://www.1x3x.net/cakephp/这里选择稳定版本1.1.20.769

  • CakePHP去除默认显示的标题及图标的方法

    去除的办法是: 修改cake\libs\view\templates\layouts\default.thtml,这个是视图文件的通用模板框架(带头部和脚部). 另外: cakephp视图文件的扩展名都是thtml,这个是默认值,如果想修改后缀名也是可以的. 修改的方法是: 早cake\libs\controller\controller.php里把 var $ext='.thtml'改成html即可.

  • cakephp常见知识点汇总

    本文实例总结了cakephp常见知识点.分享给大家供大家参考,具体如下: 1. 调用其他控制器的模板,重定向 方法一: 在此调用/views/tasks/tasks下的hello.ctp模板 $this -> viewPath = 'tasks'; $this -> render('hello'); 方法二(带参): $this->redirect(array('controller'=>'users','action'=>'welcome',urlencode($this-

  • 基于CakePHP实现的简单博客系统实例

    本文实例讲述了基于CakePHP实现的简单博客系统.分享给大家供大家参考.具体实现方法如下: PostsController.php文件: <?php class PostsController extends AppController { public $helpers = array('Html', 'Form', 'Session'); public $components = array('Session'); public function index() { $this->set

随机推荐