我有一个AppSchema
,我在其中插入了一些行。到目前为止一切顺利:
$foo = ClassRegistry::init('Foo');
$foo->create();
$foo->saveMany(/*...*/);
我了解到intentionally的--connection
开关被每个Model::$useDbConfig
覆盖:
如果您在回调中使用模型,请确保使用进行初始化 正确的数据源,以免它们退回到默认值 数据源:
public function before($event = array()) { $articles = ClassRegistry::init('Articles', array( 'ds' => $this->connection )); // Do things with articles. }
但是我无法将行插入default
之外的其他位置:
Console/cake schema create --connection test --file schema_foo.php
class AppSchema extends CakeSchema {
public function __construct($options = array()) {
parent::__construct($options);
// `$this->connection` contains value from `--connection`
$foo = ClassRegistry::init('Foo', array('ds' => $this->connection));
// `--connection` is ignored, `default` gets initialised
$foo->create();
$foo->saveMany(/*...*/);
}
}
我误解了什么?
答案 0 :(得分:1)
Cookbook示例是错误的,没有这样的语法,ClassRegistry::init()
的第二个参数是布尔值。
第一个参数接受一个数组以传递更多选项:
ClassRegistry::init(array(
'class' => 'Foo'
'ds' => $this->connection
));
另请参阅API文档稍有损坏 API > ClassRegistry::init() :)