下面的程式碼是CakePHP下對表單資料的增加,刪除,修改實作程式碼
這裡聲明一點,上例中不小心把資料庫表中lastupd欄位錯打成lastudp,本範例予以更正。
除上訴欄位資料庫與上例一致。
工程仍沿用上例,如下圖:
程式碼依序為:
database.php:與上例一致。
companies_controller.php:
<?php
classCompaniesControllerextendsAppController
{
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:
<?php
classCompanyextendsAppModel
{
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即可測試程式碼。