我正在写一个快速的一次性方法来将用户从旧表导入到我的新cake应用程序中。我已经将旧的用户表(old_users)导入到我的cake应用程序数据库中。基本上我只需要对old_users表执行一个全选操作,然后使用类似$newuser-〉create('old_username','old_password')这样的命令循环访问它们并将它们添加到新的用户表中;
但是,我不想为临时表创建一个模型等,因为这个导入只运行一次。所以我的问题是-我如何才能做一个基本的选择来从用户控制器中的一个cake方法中获取这个表中的所有用户。我在想这样的事情:
public function admin_importOldUsers() {
$db = $this->getDataSource();
$db->fetchAll('SELECT * FROM old_users');
}
但它失败了,错误如下:
调用未定义的方法UsersController::getDataSource()
我在文档中找不到太多关于如何从控制器中查询另一个DB表(没有模型)的内容。
谁能给我指个方向?
先谢谢你
5条答案
按热度按时间esbemjvw1#
要在没有模型的情况下在CakePHP中手动运行一个标准的SQL查询,可以在控制器可用的任何模型上使用
query
方法(使用哪个模型都无关紧要):CakePHP 1.3 -模型
lskq00tm2#
关于该部分的文档是不正确的。在您的 database.php 文件中找到连接的名称,并使用以下代码(我的是 default):
gcxthw6b3#
我曾经做过一个类似的数据库转换脚本,将非Cake数据库转换为Cake数据库。下面是该脚本的一些片段(基于CakePHP 1.3,如果使用2.x,可能会略有不同)。
dwthyt8l4#
现在没有机会尝试它,但下面的代码应该工作.
hujrc8aj5#
最简单的方法是:
$model = $this-〉loadModel('您的模型名称')-〉query(“SELECT * FROM表名称”)