alan / yii2-orm-dcache
yii2 framwork use dcache like yii2-orm
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/alan/yii2-orm-dcache
Requires
- ext-json: *
- yiisoft/yii2: ~2.0.22
Requires (Dev)
- phpunit/phpunit: <7
- yiisoft/yii2-dev: ~2.0.14
This package is auto-updated.
Last update: 2025-10-22 22:59:37 UTC
README
- 
安装 composer require alan/yii2-orm-dcache:dev-master 
- 
配置 - 
添加dcache访问的http地址,本工具基于dcache的http访问接口编写 建议添加到common\config\main-local.php文件添加 //测试环境配置 'dcache_data_center' => [ 'url' => 'http://xxx.xxx.xxx.xxx:xxxx', 'key' => 'xxxxxxxx', ] 
- 
添加dcache表对应的配置(此配置用于查询表结构,用于ORM操作) //测试和正式环境只要表结构一致就只需要添加一处即可 'db_tars_order' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=host;port=port;dbname=db_name', 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', 'enableSchemaCache' => true, 'schemaCacheDuration' => 86400, // time in seconds ], 'db_tars_relationship' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=host;port=prot;dbname=dbname', 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', 'enableSchemaCache' => true, 'schemaCacheDuration' => 86400, // time in seconds ], 
 
- 
- 
使用示例 - 查询
 /** 查询一条 **/ Invoice::find()->where(['order_sn' =>'xxxxx'])->asArray(false)->one() /** 查询多条 **/ Invoice::find()->where(['order_sn' =>'xxxxx'])->asArray(false)->all() /** 取出数组 **/ Invoice::find()->where(['order_sn' =>'xxxxx'])->asArray(false)->asArray()->all() - 
更新 public function actionUpdate($orderSn){ /** @var Order $order */ $order = Order::find()->where(['order_sn' => $orderSn])->asArray(false)->one(); if (empty($order)){ die("查询失败"); } print_r($order->toArray()); $order->b_user_id = "1234"; $saveRsp = $order->save(); if (!$saveRsp){ print_r($order->getErrors()); } else { $order = Order::find()->where(['order_sn' => $orderSn])->asArray(true)->one(); print_r($order); } } 
- 
删除 public function actionDelete($orderSn){ /** @var Order $order */ $order = Order::find()->where(['order_sn' => $orderSn])->asArray(false)->one(); if (empty($order)){ die("查询失败"); } $order->delete(); $order = Order::find()->where(['order_sn' => $orderSn])->asArray(true)->one(); print_r($order); } 
 
- 
已知问题 - dcache不支持limit语句,查询all时要注意取出数据的数量
- orm不支里面使用带查询的验证器,比如union验证器。建议放在外层自验证验证唯一性