欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-06-02 19:30:48
...
这里声明一点,上例中不小心把数据库表中lastupd字段错打成lastudp,本例子予以更正。

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

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

代码依次为:

database.php:与上例一致。

companies_controller.php:

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

company.php:

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

index.thtml:

  1. Test companies

  2. foreach ($companies as $company): ?>
  3. endforeach; ?>
  4. Id company price change last update
    echo $company['Company']['id']; ?>
  5. echo $html->link($company['Company']['company'], "/companies/view/".$company['Company']['id']); ?>
  6. echo $html->link('Delete', "/companies/delete/{$company['Company']['id']}", null, 'Are you sure?')?>
  7. echo $company['Company']['price']; ?> echo $company['Company']['change']; ?> echo $company['Company']['lastupd']; ?>
  8. echo $html->link('add', "/companies/add"); ?>

view.thtml:

  1. Company: echo $company['Company']['company']?>

  2. Id: echo $company['Company']['id']?>

  3. Price: echo $company['Company']['price']?>

  4. Change: echo $company['Company']['change']?>

  5. LastUpdate: echo $company['Company']['lastupd']?>


  6. echo $html->link('edit', "/companies/edit/".$company['Company']['id']); ?>

add.thtml:

  1. Add Company

  2. "post" action="url('/companies/add')?>">
  3. Company:
  4. echo $html->input('Company/company', array('size' => '40'))?>
  5. echo $html->tagErrorMsg('Company/company', 'Company is required.') ?>
  6. Price:
  7. echo $html->input('Company/price', array('size' => '40'))?>
  8. echo $html->tagErrorMsg('Company/company', 'Price is required.') ?>
  9. Change:
  10. echo $html->input('Company/change', array('size' => '40'))?>
  11. echo $html->tagErrorMsg('Company/change', 'Change is required.') ?>
  12. Last Update:
  13. echo $html->input('Company/lastupd', array('size' => '40'))?>
  14. echo $html->tagErrorMsg('Company/lastupd', 'Last Update is required.') ?>
  15. echo $html->submit('Save') ?> echo $html->link('return', "/companies/index"); ?>

edit.thtml:

  1. Edit Company

  2. "post" action="url('/companies/edit')?>">
  3. echo $html->hidden('Company/id'); ?>
  4. Company:
  5. echo $html->input('Company/company', array('size' => '40'))?>
  6. echo $html->tagErrorMsg('Company/company', 'Company is required.') ?>
  7. Price:
  8. echo $html->input('Company/price', array('size' => '40'))?>
  9. echo $html->tagErrorMsg('Company/company', 'Price is required.') ?>
  10. Change:
  11. echo $html->input('Company/change', array('size' => '40'))?>
  12. echo $html->tagErrorMsg('Company/change', 'Change is required.') ?>
  13. Last Update:
  14. echo $html->input('Company/lastupd', array('size' => '40'))?>
  15. echo $html->tagErrorMsg('Company/lastupd', 'Last Update is required.') ?>
  16. echo $html->submit('Save') ?> echo $html->link('return', "/companies/index"); ?>

如此访问http://localhost/cakephp/companies即可测试代码。