zoukankan      html  css  js  c++  java
  • 1105ecos笔记

    1 dbschema
    <?php
    $db['item']=array (
    'columns' =>
    array (
    'item_id' => array (
    'type' => 'number',
    'required' => true,
    'extra' => 'auto_increment',
    'pkey' => true
    ),
    'item_subject' => array ( 'type' => 'varchar(100)' ),
    'item_content' => array ( 'type' => 'text' ),
    'item_posttime' => array ( 'type' => 'time' ),
    'item_email' => array ( 'type' => 'email'),
    ),
    );
    2. 控制器文件‘

    <?php
    class notebook_ctl_default extends base_controller{
    public function index(){
    $this->pagedata['items']=$this->app->model('items')->getList('*');
    $this->display("default.html");
    }
    public function addnew(){
    $this->begin(array("ctl"=>"default","act"=>"index"));
    $data = array(
    'item_subject'=>$_POST['subject'],
    'item_content'=>$_POST['content'],
    'item_email'=>$_POST['email'],
    'item_posttime'=>time(),
    );
    $result = $this->app->model('item')->insert($data);
    $this->end($result);
    }
    }
    继承类:site b2c_frontpage; admin desktop_controller;
    一般自己单独写app的话,用site_controller(site) desktop_controller(desktop)

    数据产生变动的时候用 新增 修改 删除,需要写一个事务。
    update:
    $data = array(
    'name'=>'wuwei',
    'sex'=>'male',
    );
    $filter = array('id'=>10);
    $this->update($data,$filter);

    save:
    $data = array(
    'id'=>10,
    'name'=>'sunjingrong',
    'sex'=>'male',
    );
    $this->save($data);

    delete:
    function member_delect(){
    $filter = array(
    'member_id'=>10,
    );
    $this->delete($filter,'delete');//会删除在$subSdf 中定义的节点
    }
    ----------------------
    meta扩展:
    在不改动原表的情况下,增加扩展表字段。在二次开发中不推荐直接修改dbschema文件,那么在不修改原来dbschema(表)的情况下,
    推荐使用meta扩展来增加要修改表的字段

    在对需要扩展字段的表的model中添加下面的构造方法,此model需要继承dbeav_model
    <?php
    ...
    function __construct($app){
    parent::__construct($app);
    //使用meta系统进行存储
    $this->use_meta();
    }
    进行扩展字段注册
    注册字段一般会在进行安装app的时候进行注册,所以一般注册字段方法会放在task.php文件中
    还有一种是放在model中,先判断表中是否有需要注册的字段,如果没有则进行注册.

    1.model中注册一般是在调用这字段的时候需要判断是否注册了,如果没注册则需要调用model中的注册字段方法进行注册
    在需要注册的表对应的model中加入如下方法
    <?php
    ...
    //方法名自定义
    //在注册的时候对此方法进行调用,则对表添加了一个新的字段
    public function mytest(){
    //和dbschema里的*列定义*一样, 但是没有pkey,extra,title定义
    $column = array(
    'qq'=>array (
    'type' => 'number',
    'required' => false,
    'label' => __(' 短值测试列'),
    'width' => 110,
    'editable' => false,
    ),
    );
    return $this->meta_register($column);//注意:这只可以注册一个字段,如果要一次注册多个字段则可以循环
    }
    2.task.php 中注册(推荐使用此方法)
    <?php
    ...
    //会在安装app的时候调用,进行注册
    function post_install($options){
    $obj = app::get('b2c')->model('member');
    $col = array(
    'qq'=>array (
    'type' => 'number',
    'required' => false,
    'label' => __(' 短值测试列'),
    'width' => 110,
    'editable' => false,
    ),
    );
    $obj->meta_register($col);
    }
    注册字段成功后我们会发现在sdb_dbeav_meta_register表中会有一条这样的记录
    function save() {
    $filter = array(
    'member_user' => 'XXXX',
    'member_password' => md5('shopex'),
    'member_email'=>'XXXX@qq.com',
    'member_time'=>time(),
    'qq'=>1111111,
    );
    $this->app->model('member')->save($filter);//保存数据
    //保存后查询
    $arr = $this->app->model('member')->getList('*');
    echo '<pre>';
    print_r($arr);
    }

    ctl里 admin里的类继承desktop_controller
    site里方法 b2c_frontpage 或者直接 site_controller
    b2c_frontpage -> site_controller -> base_controller
    desktop_controller -> base_controller

    dump site:ec-os.net 用来搜索。
    ---------------------------------------
    2.desktop
    修改: app/notebook/app.xml,使notebook依附于desktop。
    <depends>
    <app>base</app>
    <app>desktop</app>
    </depends>
    添加后台菜单描述文件: app/notebook/desktop.xml
    创建admin控制器文件夹:app/notebook/controller/admin
    创建留言列表管理控制器文件:app/notebook/controller/admin/notebook.php
    重新修改数据库描述文件: app/dbschema/item.php 使之能支持desktop app
    --------------------------------
    为finder添加查看编辑
    首先修改services.xml,添加一个新的service实例: app/notebook/services.xml

    建立service文件:
    在app/notebook/lib/目录下新建文件夹finder
    在app/notebook/lib/finder目录下新建文件item.php

    修改留言列表管理控制器文件:app/notebook/controller/admin/notebook.php

    (最后还要注意,留言列表的右侧有一个数据配置选项有没有勾选)

  • 相关阅读:
    androidstudio提示adb错误:cannot parse version string:kg01的解决方法
    mysql常用运行原理
    shiro认证授权
    Java多线程入门(一)——多线程基本概念
    CSS简单入门
    H5入门这一篇就够了
    Java IO流详解(八)——其他流的使用
    Java IO流详解(七)——对象流(序列化与反序列化)
    Java IO流详解(六)——转换流
    Java IO流详解(五)——缓冲流
  • 原文地址:https://www.cnblogs.com/smartyman/p/4075475.html
Copyright © 2011-2022 走看看