1

我有一个需要远程连接的数据库,它与 Joomla 数据库不同。

我可以在其他模型中轻松做到这一点,但 JModelAdmin 给出了一些问题,因为它似乎需要 JTable 才能运行。

我试图覆盖 JTable 实例以改用我的外部数据库,但是它似乎不想工作并且在“重置”中出现错误。我的猜测是 JTable 也需要访问核心 Joomla 表。

有什么简单的方法可以做到这一点?还是覆盖核心是唯一的选择?

编辑:为了澄清我可以让 Joomla 连接到数据库并运行查询。唯一的问题是 JTable 拒绝使用外部数据库正确初始化。

这是我模型中的构造函数:

function __construct($config = array()){
    $config['dbo'] = TireApiHelper::tireAPIDB();
    parent::__construct($config);
} 

这适用于我的列表模型,但不适用于我的管理模型。我的列表模型不需要表类,但是控制器需要使用管理模型来发布/取消发布,这就是问题所在。即使 JTable 使用当前设置的数据库实例,它也会返回 false 而没有 Joomla 错误(根据代码,如果$table返回 false,我应该会看到 joomla 错误。

4

1 回答 1

1

有几种方法可以实现这一点,但关键是创建一个新的数据库对象。您可以在此处找到有关如何执行此操作的说明。一旦你有了这个对象,你可以:

  1. 将您的 JTable 类扩展设置为通过构造函数或使用setDBO(...)方法来使用它。看到这个
  2. 选择使用此对象和不带任何 JTable 的查询对象,如文档站点中所述。

干杯。

于 2013-07-19T20:34:48.017 回答