AR 怎么更新的时候指定表 这样就直接报错了,说是没有 updateAllCounters 方法 $this->tableName() ->updateAllCounters(['downconunt' => 1]); 这样又不能指定表,我不想在 tablename 方法里面设置表。因为表有多个,所以不灵活 $this->updateAllCounters(['downconunt' => 1]);
还有这个 new \yii\db\Query();
怎么用更新,貌似只有查询的功能,没见有 UPdate 方法
还有怎么在 script 添加一个属性
<script type="text/html" id="test"> <script> 1
hoyixi 2018-04-22 16:27:47 +08:00
哥们,提问的时候最好说清楚上下文,比如
1 你想要干什么,预期达到什么结果; 2 你具体怎么干的,用什么干的; 3 结果报错了,错误信息是啥; 不然别人很难懂你到底在说什么~ 第一段,没太明白你的意思,大概猜猜,回答供参考。 $this->tableName(), 这是你在一个 AR model 类里调用的吧?$this 是 AR 实例,tableName()返回的是当前 AR 类关联的数据表名称,一个字符串。 你在其后面直接链式调用 ->updateAllCounters,显然错误,一个字符串哪里来的 updateAllCounters 方法。 你要在 AR 类或者实例上调用才行 第二段,想 update,可以用 yii\db\QueryBuilder,有 update 方法,具体看 yii\db\QueryBuilder 文档; 另一种常用方式是:Yii::$app->db->createCommand()->update(), 具体看文档 yii\db\Command ; 这两种都可以指定表名字。 最后一段,想给 script 添加一个属性,直接加好了,你不是已经加了吗?如果是由 Yii2 辅助类输出的 script 标签,就去看那个辅助类的文档,一边都会有个 option 参数,让你传入自定义属性 其实都是基本的用法,推荐自己去看官方文档,英文有难度可以看中文的,Yii 中文站: http://www.yiichina.com/doc http://www.yiichina.com/doc/guide/2.0 http://www.yiichina.com/doc/api/2.0 |
2
huijiewei 2018-04-22 18:48:09 +08:00
updateAllCounters 是 ActiveRecord 的静态方法。正确用法是 Customer::updateAllCounters(['age' => 1]); 这样的。
|
3
autoname OP @huijiewei
Customer::updateAllCounters(['age' => 1]); 这样怎么指定一个表进行更新操作呢。 我不想在 tablename 方法里面 写表,那里写的话 表被固定死了, 我那 MOD 是公用的,所有控制器都走那个。所以寻求一个更新的时候 指定表的 |
4
autoname OP @hoyixi
谢谢老铁,回答这么大一段,我直接忽略 了 。先回答了二楼的 回头才看你的,抱歉 1 你想要干什么,预期达到什么结果; 2 你具体怎么干的,用什么干的; 3 结果报错了,错误信息是啥; 我就是想 找个更新的方法。并且这个方法可以指定表名, 我不想要传整个 sql 语句的写法,$this->findBySql($sql) |
5
huijiewei 2018-04-22 19:46:46 +08:00
|
7
autoname OP 文档只有
public static function tableName() { return 'customer'; } 这个 return 'customer'; 把数据库弄死了,要更新其他表就不行了, 关键是这表我就更新一次也不经常用的,每个表都建立一个文件感觉有点 复杂 难管理 |