找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 808|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 09:22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            这里声明一点,上例中不小心把数据库表中lastupd字段错打成lastudp,本例子予以更正。
除上诉字段数据库与上例一致。
工程仍沿用上例,如下图:

代码依次为:
database.php:与上例一致。
companies_controller.php:


  • [color=]class
    CompaniesController
    [color=]extends
    AppController
  • {
       
    [color=]var

    [color=]$name
    =
    [color=]'Companies'
    ;
  •      
       
    [color=]function
    index()
  •     {
            
    [color=]$this
    ->set(
    [color=]'companies'
    ,
    [color=]$this
    ->Company->findAll());
  •     }
         
  •    
    [color=]function
    view(
    [color=]$id
    = null)
        {
  •         
    [color=]$this
    ->Company->id =
    [color=]$id
    ;
            
    [color=]$this
    ->set(
    [color=]'company'
    ,
    [color=]$this
    ->Company->read());
  •     }
         
  •    
    [color=]function
    add()
        {
  •         
    [color=]if
    (!empty
    [color=]empty
    (
    [color=]$this
    ->data))
            {
  •             
    [color=]if
    (
    [color=]$this
    ->Company->save(
    [color=]$this
    ->data))
                {
  •                
    [color=]$this
    ->flash(
    [color=]'Your post has been saved.'
    ,
    [color=]'/companies'
    );
                }
  •         }
        }
  •      
       
    [color=]function
    edit(
    [color=]$id
    = null)
  •     {
            
    [color=]if
    (empty
    [color=]empty
    (
    [color=]$this
    ->data))
  •         {
                
    [color=]$this
    ->Company->id =
    [color=]$id
    ;
  •             
    [color=]$this
    ->data =
    [color=]$this
    ->Company->read();
            }
  •         else
            {
  •             
    [color=]if
    (
    [color=]$this
    ->Company->save(
    [color=]$this
    ->data[
    [color=]'Company'
    ]))
                {
  •                
    [color=]$this
    ->flash(
    [color=]'Your post has been updated.'
    ,
    [color=]'/companies'
    );
                }
  •         }
        }
  •      
       
    [color=]function
    delete(
    [color=]$id
    )
  •     {
            
    [color=]$this
    ->Company->del(
    [color=]$id
    );
  •         
    [color=]$this
    ->flash(
    [color=]'The post with id: '
    .
    [color=]$id
    .
    [color=]' has been deleted.'
    ,
    [color=]'/companies'
    );
        }
  • }
    ?>[/ol]
    company.php:


  • [color=]class
    Company
    [color=]extends
    AppModel
  • {
       
    [color=]var

    [color=]$name
    =
    [color=]'Company'
    ;
  •      
       
    [color=]var

    [color=]$validate
    =
    [color=]array
    (
  •         
    [color=]'company'
    => VALID_NOT_EMPTY,
            
    [color=]'price'
       => VALID_NOT_EMPTY,
  •         
    [color=]'change'
      => VALID_NOT_EMPTY,
            
    [color=]'lastupd'
    => VALID_NOT_EMPTY
  •     );
    }
  • ?>[/ol]
    index.thtml:
  • Test companies

  • Id
  • company
    price
  • change
    last update


  • [color=]foreach
    (
    [color=]$companies

    [color=]as

    [color=]$company
    ): ?>

  • echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'id'
    ]; ?>

  • echo
    [color=]$html
    ->link(
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'company'
    ],
    [color=]"/companies/view/"
    .
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'id'
    ]); ?>
  •      
    echo
    [color=]$html
    ->link(
    [color=]'Delete'
    ,
    [color=]"/companies/delete/{$company['Company']['id']}"
    , null,
    [color=]'Are you sure?'
    )?>

  • echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'price'
    ]; ?>
  • echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'change'
    ]; ?>
    echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'lastupd'
    ]; ?>


  • [color=]endforeach
    ; ?>   

  • echo
    [color=]$html
    ->link(
    [color=]'add'
    ,
    [color=]"/companies/add"
    ); ?>
    [/ol]
    view.thtml:
  • Company: echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'company'
    ]?>
    Id: echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'id'
    ]?>
  • Price: echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'price'
    ]?>

    Change: echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'change'
    ]?>
  • LastUpdate: echo
    [color=]$company
    [
    [color=]'Company'
    ][
    [color=]'lastupd'
    ]?>


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

  • [/ol]
    add.thtml:
  • Add Company
    [color=]"post"
    action="url('/companies/add')?>">

  • Company:
  • echo
    [color=]$html
    ->input(
    [color=]'Company/company'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
    echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/company'
    ,
    [color=]'Company is required.'
    ) ?>


  • Price:
    echo
    [color=]$html
    ->input(
    [color=]'Company/price'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
  • echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/company'
    ,
    [color=]'Price is required.'
    ) ?>

  • Change:
  • echo
    [color=]$html
    ->input(
    [color=]'Company/change'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
    echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/change'
    ,
    [color=]'Change is required.'
    ) ?>


  • Last Update:
    echo
    [color=]$html
    ->input(
    [color=]'Company/lastupd'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
  • echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/lastupd'
    ,
    [color=]'Last Update is required.'
    ) ?>

  • echo
    [color=]$html
    ->submit(
    [color=]'Save'
    ) ?> echo
    [color=]$html
    ->link(
    [color=]'return'
    ,
    [color=]"/companies/index"
    ); ?>


  • [/ol]
    edit.thtml:
  • Edit Company
    [color=]"post"
    action="url('/companies/edit')?>">
  • echo
    [color=]$html
    ->hidden(
    [color=]'Company/id'
    ); ?>
  • Company:
    echo
    [color=]$html
    ->input(
    [color=]'Company/company'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
  • echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/company'
    ,
    [color=]'Company is required.'
    ) ?>

  • Price:
  • echo
    [color=]$html
    ->input(
    [color=]'Company/price'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
    echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/company'
    ,
    [color=]'Price is required.'
    ) ?>


  • Change:
    echo
    [color=]$html
    ->input(
    [color=]'Company/change'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
  • echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/change'
    ,
    [color=]'Change is required.'
    ) ?>

  • Last Update:
  • echo
    [color=]$html
    ->input(
    [color=]'Company/lastupd'
    ,
    [color=]array
    (
    [color=]'size'
    =>
    [color=]'40'
    ))?>
    echo
    [color=]$html
    ->tagErrorMsg(
    [color=]'Company/lastupd'
    ,
    [color=]'Last Update is required.'
    ) ?>


  • echo
    [color=]$html
    ->submit(
    [color=]'Save'
    ) ?> echo
    [color=]$html
    ->link(
    [color=]'return'
    ,
    [color=]"/companies/index"
    ); ?>
  • [/ol]
    如此访问
    [color=]http://localhost/cakephp/companies
    即可测试代码。
                
                
    您可能感兴趣的文章:
  • 攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍
  • 攻克CakePHP系列一 连接MySQL数据库
  • CakePHP去除默认显示的标题及图标的方法
  • 攻克CakePHP系列二 表单数据显示
  • 配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
  • 初学CAKEPHP 基础教程
  • Cakephp 执行主要流程
  • 初品cakephp 入门基础
  • cakephp打印sql语句的方法
  • 基于CakePHP实现的简单博客系统实例
  • Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例
  • cakephp2.X多表联合查询join及使用分页查询的方法
  • CakePHP框架Session设置方法分析
  • cakephp常见知识点汇总
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端