家有泰迪
- 家有泰迪 2018-02-01 已签到连续签到1天,获得了5个金钱
- 家有泰迪 赞了回答
首先解决你的多表字段问题,可以新建一个form继承至model,里面放需要的字段名称。
至于view要可编辑的表格,你就在td里面放input就可以了。
提交的话,可以在提交前通过js,把表单的数据组合成数组,或者json格式进行提交。
甚至你可以在一开始就维护一个数组,修改input的同时修改数组内容。 建议查下 migrate 相关的资料,可以实现你说的需求
/** @var \yii\db\Migration $migrate */ $migrate = new Migration([ 'db' => 'db_test',//用来做测试的库, 不设置则为默认db ]); //针对mysql的table设置 $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB'; //这边以创建数据表做测试, migrate 支持数据表的各类操作 $result = $migrate->createTable('test_tb',[ 'id' => $migrate->primaryKey(), 'email' => $migrate->string(255)->notNull()->unique(), //表字段 可根据前端设置 转换后生成 ],$tableOptions); VarDumper::export($result);//这边是null
测试之后,你会发现,这个类通常是用在命令行里面的。
你可以尝试写一个继承的 数据库操作类
您好, migrate 的相关资料没有找到,这段代码还是不会用
- 家有泰迪 回复了 dingjj2010 的回答
做过类似的, 我的实现方式是建2张表,1表名表 2字段表,1表记录表的相关信息,2表记录每个具体字段信息, 在点击生成表的时候,读取1表,2表信息,拼接成新表的sql执行
这个方法确实可以实现,也是用的这个思路
- 家有泰迪 赞了回答
$goods = new Goods;
//添加多条商品
foreach($goods_array as $k => $v){
$_goods = clone $goods;
// 克隆clone
$_goods->name = $v['name'];
$_goods->price = $v['price'];
$_goods->save();
}
- 家有泰迪 赞了回答
新new的对象放在循环外边,然后循环中,给model赋值,model调用save方法后,将model->id=null,id是主键,最后将model重新设置成新增的对象,调用setisnewrecord(true)方法,不知道到方法名拼错了没
- 家有泰迪 赞了说说各位大哥,小子提了一个不知道的问题急需,不知道各位大神有空否
- 家有泰迪 2017-09-07 已签到连续签到1天,获得了5个金钱
- 家有泰迪 发表了说说各位大哥,小子提了一个不知道的问题急需,不知道各位大神有空否