从 Joomla 3.4 中的另一个组件控制器调用模型

har*_*h4u 1 model joomla3.4

我正在开发 Joomla 3.4 application我必须将一个组件模型调用到另一个组件控制器但不能从那里调用的地方。

支持,我有 2 个组件

>> comp1
  model: m1
  controller: c1
>> comp2
  model: m2
  controller: c2
Run Code Online (Sandbox Code Playgroud)

我想打电话 comp1 model (m1) into comp2 controller (c2).

我尝试使用以下代码:

$model    = $this->getModel('m1', '', array());
Run Code Online (Sandbox Code Playgroud)

但是在$model获取空值时,如果上面的代码使用在comp1 controller (c1)然后运行完美。

什么实际问题是没有得到。任何人都有一个完美的想法。

谢谢

小智 5

这是一个老问题,但迟到总比没有好,我希望它会帮助其他开发人员。

要从另一个组件调用模型,您首先需要包含此模型的路径:

JModelLegacy::addIncludePath(JPATH_SITE . '/components/comp1/models', 'Comp1Model');
Run Code Online (Sandbox Code Playgroud)

其次,您必须创建模型的实例:

$model = JModelLegacy::getInstance('Model1', 'Comp1Model');
Run Code Online (Sandbox Code Playgroud)

之后,您应该能够使用模型的方法。