gpt4 book ai didi

cakephp - 如何设置数据库 View 夹具?

转载 作者:行者123 更新时间:2023-12-01 04:59:21 27 4
gpt4 key购买 nike

是否可以设置一个夹具来创建数据库 View 而不是 CakePHP 中的数据库表?在创建表的夹具和另一个应该是数据库 View 的夹具中使用相同的数据似乎效率低下。

最佳答案

我设法这样做,其中 view_my_model.sql 包含生成数据库 View 的 SQL:

class ViewMyModelFixture extends AppFixture {

public function create($DboSource) {
$path = APP . 'Config' . DS . 'sql' . DS . 'view_my_model.sql';
$File = new File($path);
if (!$File->exists()) {
throw new CakeException($path . ' does not exist');
}
if (!$File->readable()) {
throw new CakeException($path . ' is not readable');
}
$sql = $File->read();
if (empty($sql)) {
throw new CakeException($path . ' has no SQL');
}
try {
$DboSource->execute($sql);
$this->created[] = $DboSource->configKeyName;
} catch (Exception $exception) {
$msg = __d('cake_dev', 'Fixture creation for "%s" failed "%s"', $this->table, $exception->getMessage());
CakeLog::error($msg);
trigger_error($msg, E_USER_WARNING);
return false;
}
return true;
}

public function drop($DboSource) {
try {
$sql = 'DROP VIEW ' . $DboSource->fullTableName($this->table) . ";";
$DboSource->execute($sql);
$this->created = array_diff($this->created, array($DboSource->configKeyName));
} catch (Exception $exception) {
return false;
}
return true;
}

public function truncate($DboSource) {
return;
}
}

关于cakephp - 如何设置数据库 View 夹具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com