攻克CakePHP系列三 表单数据增删改
下面的代码是CakePHP下对表单数据的增加,删除,修改实现代码
这里声明一点,上例中不小心把数据库表中lastupd字段错打成lastudp,本例子予以更正。
除上诉字段数据库与上例一致。
工程仍沿用上例,如下图:
代码依次为:
database.php:与上例一致。
companies_controller.php:
<?phpclassCompaniesControllerextendsAppController{var$name='Companies';
functionindex(){$this->set('companies',$this->Company->findAll());}
functionview($id= null){$this->Company->id =$id;$this->set('company',$this->Company->read());}
functionadd(){if(!emptyempty($this->data)){if($this->Company->save($this->data)){$this->flash('Your post has been saved.','/companies');}}}
functionedit($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');}}}
functiondelete($id){$this->Company->del($id);$this->flash('The post with id: '.$id.' has been deleted.','/companies');}}?>company.php:
<?phpclassCompanyextendsAppModel{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><?phpforeach($companiesas$company): ?><tr><td><?phpecho$company['Company']['id']; ?></td><td><?phpecho$html->link($company['Company']['company'],'/companies/view/'.$company['Company']['id']); ?>
<?phpecho$html->link('Delete','/companies/delete/{$company['Company']['id']}', null,'Are you sure?')?></td><td><?phpecho$company['Company']['price']; ?></td><td><?phpecho$company['Company']['change']; ?></td><td><?phpecho$company['Company']['lastupd']; ?></td></tr><?phpendforeach; ?></table><p><?phpecho$html->link('add','/companies/add'); ?></p>view.thtml:
<h1>Company: <?phpecho$company['Company']['company']?></h1><p><small>Id: <?phpecho$company['Company']['id']?></small></p><p>Price: <?phpecho$company['Company']['price']?></p><p>Change: <?phpecho$company['Company']['change']?></p><p>LastUpdate: <?phpecho$company['Company']['lastupd']?></p><br/><p><?phpecho$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:<?phpecho$html->input('Company/company',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/company','Company is required.') ?></p><p>Price:<?phpecho$html->input('Company/price',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/company','Price is required.') ?></p><p>Change:<?phpecho$html->input('Company/change',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/change','Change is required.') ?></p><p>Last Update:<?phpecho$html->input('Company/lastupd',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/lastupd','Last Update is required.') ?></p><p><?phpecho$html->submit('Save') ?> <?phpecho$html->link('return','/companies/index'); ?></p></form>edit.thtml:
<h1>Edit Company</h1><form method='post'action='<?php echo $html->url('/companies/edit')?>'><?phpecho$html->hidden('Company/id'); ?><p>Company:<?phpecho$html->input('Company/company',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/company','Company is required.') ?></p><p>Price:<?phpecho$html->input('Company/price',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/company','Price is required.') ?></p><p>Change:<?phpecho$html->input('Company/change',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/change','Change is required.') ?></p><p>Last Update:<?phpecho$html->input('Company/lastupd',array('size'=>'40'))?><?phpecho$html->tagErrorMsg('Company/lastupd','Last Update is required.') ?></p><p><?phpecho$html->submit('Save') ?> <?phpecho$html->link('return','/companies/index'); ?></p></form>如此访问http://localhost/cakephp/companies即可测试代码。