IcePHP框架中的快速后台中的通用CRUD功能框架(八) SCrudOperation 指定操作类

本文介绍了IcePHP框架中用于快速后台开发的SCrudOperation类,包括其主要方法如processDoUpdate和processDoInsert,用于处理数据的更新和插入操作。该类还支持自定义操作、过滤条件和错误处理,提供了CRUD操作的便捷实现。
摘要由CSDN通过智能技术生成
<?php
/**
 * 每一个CRUD操作
 * @author bluehire
 *
 */
class SCrudOperation {
    /**
     * 主CRUD对象
     *
     * @var SCrud
     */
    protected $crud;
    
    /**
     * 过滤条件,只有满足此条件的数据才有此操作
     * @var Closure
     */
    public $filter;
    
    // 配置信息
    protected $config;
    
    // 操作对应的METHOD名
    public $method;
    
    //操作显示名
    public $title;
    
    // 设置配置信息
    public function config(array $config) {
        $this->config = $config;
    }
    
    /**
     * 执行修改的具体 操作
     * @param SRequest $req
     */
    private function processDoUpdate(SRequest $req){
        $primaryField=$this->crud->getPrimaryField();
            
        $fields = $this->crud->listUpdatable ();
        $data = array ();
        foreach ( $fields as $f ) {
            $k = $f->name;
            $inputName = 'crud_update_' . $k;
            if (! $req->exist ( $inputName ) or ! $req->$inputName) {
                $v = $f->defaultValue;
            } else {
                $v = $req->$inputName;
            }
                
            if ($f->isPassword and ! $v) {
                continue;
            }
                
            if ($f->encode) {
                $v = $f->encode ( $v );
            }
            $data [$k] = $v;
        }
        $inputName = 'crud_update_' . $primaryField->name;
        if (! $req->exist ( $inputName ) or ! $req->$inputName) {
            return $this->error ( '错误 的编辑 操作.' );
        }
        $primaryValue = $req->$inputName;
        
        foreach ( $this->crud->listUpdated () as $f ) {
            $data [$f->name] = time ();
        }
        
        //@todo:执行真正的修改操作
        
        return $this->ajaxOk(array('msg'=>'修改了一条数据','go'=>'list',dump($data,'data',true)));
    }
    
    /**
     * 执行新增操作的处理
     * @param SRequest $req
     */
    private function processDoInsert(SRequest $req){
        $fields = $this->crud->listInsertable ();
        $data = array ();
        foreach ( $fields as $f ) {
            $k = $f->name;
            $inputName = 'crud_insert_' . $k;
            if (! $req->exist ( $inputName ) or ! $req->$inputName) {
                $v = $f->defaultValue;
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值