生成模式后您可能想要插入数据表来启动应用程序。这可以通过CakeSchema回调。每一个模式文件生成与before($event = array())和after($event = array())的方法。
将数据添加到posts表例如这样:
在before() 和after()后每次运行表创建或删除当前模式。
当插入数据到多个表你需要刷新缓存后每个表创建数据库。可以禁用缓存设置$db->cacheSources = false之前的action().。
如果你在回调函数中使用模型确保用正确的初始化数据源,以免他们后退默认数据源:
美元的事件参数数组和两把钥匙。告诉如果一个表被删除或创建,另一个错误。例子:
array('drop' => 'posts', 'errors' => null)
array('create' => 'posts', 'errors' => null)
将数据添加到posts表例如这样:
App::uses('Post', 'Model');
public function after($event = array()) {
if (isset($event['create'])) {
switch ($event['create']) {
case 'posts':
App::uses('ClassRegistry', 'Utility');
$post = ClassRegistry::init('Post');
$post->create();
$post->save(
array('Post' =>
array('title' => 'CakePHP Schema Files')
)
);
break;
}
}
}
在before() 和after()后每次运行表创建或删除当前模式。
当插入数据到多个表你需要刷新缓存后每个表创建数据库。可以禁用缓存设置$db->cacheSources = false之前的action().。
public $connection = 'default';
public function before($event = array()) {
$db = ConnectionManager::getDataSource($this->connection);
$db->cacheSources = false;
return true;
}
如果你在回调函数中使用模型确保用正确的初始化数据源,以免他们后退默认数据源:
public function before($event = array()) {
$articles = ClassRegistry::init('Articles', array(
'ds' => $this->connection
));
// Do things with articles.
}