onunix 2012-03-27 13:10:15 3485次浏览 5条回复 1 0 0

Mysql数据库中有几百个表,每个表都是增删改查,对每一个表,一个一个建模,好累,是否有什么方法,批量,对Mysql中的一个数据库中的全部表都建个模,然后批量搞个增删改查。

  • 回复于 2012-03-27 13:36 举报

    我们还可以在 Table Name 栏中输入一个星号 '*' 。这样就可以通过一次点击就对 所有的 数据表生成相应的模型类。
    http://www.yiichina.com/doc/blog/1.1/prototype.scaffold

  • 回复于 2012-03-27 14:20 举报

    多谢,确实可以批量创建模型,已经成功,但是使用 Crud Generator 时,没有办法使用*啊,Crud Gernerator可以批量吗? 批量CRUD的问题,我新开了一个帖子:
    http://www.yiichina.com/topic/2229

  • 回复于 2012-05-21 19:35 举报
    /**
     * 
     * 动态表处理
     * @author miliguy
     *
     */
    class AR extends CActiveRecord {
    	
    	public static $tableName;
    	
    	public function __construct($table_name = '') {
    		
    		if ($table_name === null) {
    			parent::__construct ( null );
    		} else {
    			self::$tableName = $table_name;
    			parent::__construct ();
    		}
    	
    	}
    	
    	public static function model($table_name = '', $className = __CLASS__) {
    		
    		self::$tableName = $table_name;
    		
    		return parent::model ( $className );
    	
    	}
    	
    	public function tableName() {
    		
    		return self::$tableName;
    	
    	}
    
    } 
    /*************************/
    class Other extends AR
    {
    	private $money;
    	public function __construct($tableName=NULL){
            parent::__construct($tableName);
    	}
    	
    	public static function model($tableName="",$className=__CLASS__)
    	{
    		return parent::model($tableName,$className);
    	}
    	
    	
    	/**
    	 * @return string the associated database table name
    	 */
    	public function tableName()
    	{
    		return parent::$tableName ? parent::$tableName :"post_topic";
    	}
    }
    

    使用时 new Other('table_name') or Other::model('table_name') 就可以了

  • 回复于 2012-05-21 19:36 举报

    无论多少表 都可以直接使用这一个model

  • 回复于 2012-05-21 21:03 举报

    LS比较强悍!

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