当前位置:首页 > PHP教程 > PHP高级教程

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

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

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

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

代码依次为:

database.php:与上例一致。

companies_controller.php:

  • <?php 
  • class companiescontroller extends appcontroller
  • {
  •     var $name = 'companies';
  •     
  •     function index()
  •     {
  •         $this->set('companies', $this->company->findall());
  •     }
  •     
  •     function view($id = null)
  •     {
  •         $this->company->id = $id;
  •         $this->set('company', $this->company->read());
  •     }
  •     
  •     function add()
  •     {
  •         if (!emptyempty($this->data))
  •         {
  •             if ($this->company->save($this->data))
  •             {
  •                 $this->flash('your post has been saved.','/companies');
  •             }
  •         }
  •     }
  •     
  •     function edit($id = null)
  •     {
  •         if (emptyempty($this->data))
  •         {
  •             $this->company->id = $id;
  •             $this->data = $this->company->read();
  •         }
  •         else
  •         {
  •             if ($this->company->save($this->data['company']))
  •             {
  •                 $this->flash('your post has been updated.','/companies');
  •             }
  •         }
  •     }
  •     
  •     function delete($id)
  •     {
  •         $this->company->del($id);
  •         $this->flash('the post with id: '.$id.' has been deleted.', '/companies');
  •     }
  • }
  • ?>
  • company.php:

  • <?php
  • class company extends appmodel
  • {
  •     var $name = 'company';
  •     
  •     var $validate = array(
  •         'company' => valid_not_empty,
  •         'price'   => valid_not_empty,
  •         'change'  => valid_not_empty,
  •         'lastupd' => valid_not_empty
  •     );
  • }
  • ?>
  • index.thtml:

  • <h1>test companies</h1>
  • <table>
  • <tr>
  • <th>id</th>
  • <th>company</th>
  • <th>price</th>
  • <th>change</th>
  • <th>last update</th>
  • </tr>
  • <?php foreach ($companies as $company): ?>
  • <tr>
  • <td><?php echo $company['company']['id']; ?></td>
  • <td>
  • <?php echo $html->link($company['company']['company'], "/companies/view/".$company['company']['id']); ?>
  •     
  • <?php echo $html->link('delete', "/companies/delete/{$company['company']['id']}", null, 'are you sure?')?>
  • </td>
  • <td><?php echo $company['company']['price']; ?></td>
  • <td><?php echo $company['company']['change']; ?></td>
  • <td><?php echo $company['company']['lastupd']; ?></td>
  • </tr>
  • <?php endforeach; ?>  
  • </table>
  • <p>
  • <?php echo $html->link('add', "/companies/add"); ?>
  • </p>
  • view.thtml:

  • <h1>company: <?php echo $company['company']['company']?></h1>
  • <p><small>id: <?php echo $company['company']['id']?></small></p>
  • <p>price: <?php echo $company['company']['price']?></p>
  • <p>change: <?php echo $company['company']['change']?></p>
  • <p>lastupdate: <?php echo $company['company']['lastupd']?></p>
  • <br/>
  • <p>
  • <?php echo $html->link('edit', "/companies/edit/".$company['company']['id']); ?>
  • </p>
  • add.thtml:

  • <h1>add company</h1>
  • <form method="post" action="<?php echo $html->url('/companies/add')?>">
  • <p>
  • company:
  • <?php echo $html->input('company/company', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/company', 'company is required.') ?>
  • </p>
  • <p>
  • price:
  • <?php echo $html->input('company/price', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/company', 'price is required.') ?>
  • </p>
  • <p>
  • change:
  • <?php echo $html->input('company/change', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/change', 'change is required.') ?>
  • </p>
  • <p>
  • last update:
  • <?php echo $html->input('company/lastupd', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/lastupd', 'last update is required.') ?>
  • </p>
  • <p>
  • <?php echo $html->submit('save') ?> <?php echo $html->link('return', "/companies/index"); ?>
  • </p>
  • </form>
  • edit.thtml:

  • <h1>edit company</h1>
  • <form method="post" action="<?php echo $html->url('/companies/edit')?>">
  • <?php echo $html->hidden('company/id'); ?>
  • <p>
  • company:
  • <?php echo $html->input('company/company', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/company', 'company is required.') ?>
  • </p>
  • <p>
  • price:
  • <?php echo $html->input('company/price', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/company', 'price is required.') ?>
  • </p>
  • <p>
  • change:
  • <?php echo $html->input('company/change', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/change', 'change is required.') ?>
  • </p>
  • <p>
  • last update:
  • <?php echo $html->input('company/lastupd', array('size' => '40'))?>
  • <?php echo $html->tagerrormsg('company/lastupd', 'last update is required.') ?>
  • </p>
  • <p>
  • <?php echo $html->submit('save') ?> <?php echo $html->link('return', "/companies/index"); ?>
  • </p>
  • </form>
  • 如此访问http://localhost/cakephp/companies即可测试代码。



    【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!