【发布时间】:2014-03-12 03:15:43
【问题描述】:
我目前正在使用 CakePHP(2.4 版)编写一个数据库访问应用程序。出于安全原因,我只被授予读取数据库(“数据数据库”)的权限。因此,我别无选择,只能为我的登录系统和其他一些应用程序数据使用另一个数据库(“应用程序数据库”)。
这是一个数据库访问应用程序,我 80% 以上的代码都与数据数据库相关,因此我想保持我的默认数据库连接到数据数据库。对于我自己写的模型,我知道我可以将数据库设置为:
public $useDbConnect = $applicationDatabase;
$loginDatabase 是我的应用程序数据库的数据库配置。它已添加到配置中。
问题是,我的登录系统使用的是 Cakephp 的 authComponent,而这个组件的默认设置是使用默认的数据库连接。所以,当我打电话时
$this->Auth->loggedIn(); //to check if the user have logged in or not
在任何控制器中,它都会给出一个错误代码:
Error: Call to a member function loggedIn() on a non-object
我在用户控制器中调用 AuthComponent 时发现了实际问题:
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
这是保存前的哈希密码行(也用于cakephp官方网站的官方指南。)它给出以下错误:
缺少数据库连接
错误:使用“Mysql”的数据库连接丢失或无法连接。
数据库服务器返回此错误:SQLSTATE[HY000] [2002] No connection could be made because the target machine positively denied 它。注意:如果要自定义此错误信息,请创建 app\View\Errors\missing_connection.ctp
那么,回到问题上来:有没有办法更改用于 AuthComponent 的数据库设置?
【问题讨论】:
标签: php mysql database cakephp