攻克CakePHP系列二 表单数据显示
author:一佰互联 2019-05-01   click:146

首先建立数据库cake_ext,并执行如下sql文:

  1. CREATE TABLE `companies` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `company` varchar(50) NOT NULL,
  4.   `price` decimal(8,2) NOT NULL,
  5.   `change` decimal(8,2) NOT NULL,
  6.   `lastudp` date NOT NULL,
  7.   PRIMARY KEY  (`id`)
  8. ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
  9. -- ----------------------------
  10. -- Records 
  11. -- ----------------------------
  12. INSERT INTO `companies` VALUES ("1", "3m Co", "71.72", "0.02", "2008-10-21");
  13. INSERT INTO `companies` VALUES ("2", "Alcoa Inc", "29.01", "0.42", "2008-10-20");
  14. INSERT INTO `companies` VALUES ("3", "AT&T Inc.", "31.61", "-0.48", "2008-10-21");
  15. INSERT INTO `companies` VALUES ("4", "Boeing Co.", "75.43", "0.53", "2008-10-13");
  16. INSERT INTO `companies` VALUES ("5", "United Technologies Corporation", "63.26", "0.55", "2008-10-09");
  17. INSERT INTO `companies` VALUES ("6", "Intel Corporation", "19.88", "0.31", "2008-10-15");
  18. INSERT INTO `companies` VALUES ("7", "Exxon Mobil Corp", "68.10", "-0.43", "2008-10-17");

如下图所示建立工程:

数据库配置文件如下:

  1. class DATABASE_CONFIG
  2. {
  3.     var $default = array("driver" => "mysql",
  4.                                 "connect" => "mysql_connect",
  5.                                 "host" => "localhost",
  6.                                 "login" => "root",
  7.                                 "password" => "root",
  8.                                 "database" => "cake_ext",
  9.                                 "prefix" => "");
  10.     var $test = array("driver" => "mysql",
  11.                             "connect" => "mysql_connect",
  12.                             "host" => "localhost",
  13.                             "login" => "root",
  14.                             "password" => "root",
  15.                             "database" => "cake_ext",
  16.                             "prefix" => "");
  17. }

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. ?>

company.php:

 

  1. <?php
  2. class Company extends AppModel
  3. {
  4.     var $name = "Company";
  5. }
  6. ?>

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. </td>
  16. <td><?php echo $company["Company"]["price"]; ?></td>
  17. <td><?php echo $company["Company"]["change"]; ?></td>
  18. <td><?php echo $company["Company"]["lastudp"]; ?></td>
  19. </tr>
  20. <?php endforeach; ?>  
  21. </table>

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"]["lastudp"]?></p>

访问http://localhost/cakephp/companies即可运行测试程序。

 

本代码参考自官方自带例子:http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial