在不使用前缀的情况下与另一个表相关联

时间:2014-12-16 07:43:46

标签: php cakephp

所以我的任务是创建一个现有网站的移动版本,但它是用不同的框架构建的,我没有开始。

客户希望在其上使用CakePhp。所以即时通讯使用CakePhp 2.5.7。我的问题是。有没有办法在不使用前缀的情况下关联现有表中的另一个表?

为了更清楚,我在控制器上有这个

public function index(){
    $this->loadModel('Bulletin');
    $bulletins = $this->Bulletin->find('all');
}

在我的模特中

class Bulletin extends AppModel{

    var $useTable = 'bulletin';

    var $hasMany = array(
        'BulletinComment' => array(
            'className'   => 'BulletinComment',
            'foreignKey'  => 'bulletinid',
        ),
    );
}

但数据库上的bulletincomment表没有前缀。并在页面上显示错误

Error: Table bulletincomments for model bulletincomment was not found in datasource default.

我尝试像这样创建BulletinComment模型

class BulletinComment extends AppModel{

    var $useTable = 'bulletincomment';  

}

但无济于事。我仍然得到错误。是否可以在不添加前缀的情况下使用任何关系?

1 个答案:

答案 0 :(得分:0)

假设在数据库连接(/app/Config/database.php)中设置了前缀,如果将其添加到模型中,则可以覆盖一个表:

public $tablePrefix = '';

或者您可以删除连接中的前缀并将其添加回需要它的模型,具体取决于哪个更快。