在cakephp中的不同(不相关)模型中执行模型过程

时间:2013-05-31 04:37:56

标签: php cakephp

在cakephp网站中,我得到了以下模型

  • 产品
  • 分类
  • 受试者

在项目/项目上,我想显示捐款表格。例如 物品/产品/?ID = 1234

<h1>item name</h1>
<p>item description</p>


<br />
<p>Would you like to make a donation?</p>
<form method="post" action="???">
<input type="text" name="ccNumer" />
<input type="text" name="ccExpiry" />
<input type="text" name="ccName" />
<input type="submit">
</form>

由于donationsitems没有任何关系,并且也可以在categories或其他任何地方使用,因此我不确定如何以正确的方式执行此操作。它应该是一个组件吗?

2 个答案:

答案 0 :(得分:1)

我不知道你正在使用哪个版本的cakePHP,所以我假设cakePHP 2.您可以在任何类中加载任何其他类,就像在vanilla PHP中一样。要包含其他模型,请遵循

App::uses('Donation', 'Model');     // first parameter being your ModelName and second the path

现在,您可以通过实例化对象来使用模型的方法。

$donationObj = new Donation();
$donationObj->methodName();

关于官方文件,请点击此处 http://book.cakephp.org/2.0/en/core-utility-libraries/app.html

答案 1 :(得分:1)

要在应用程序的任何位置轻松访问模型,请使用ClassRegistry::init()。 (看到: ClassRegistry)。 ClassRegistry::init()将初始化一个可供使用的模型。

例如,访问模型的方法;

$result = ClassRegistry::init('Donation')->methodName();

或者获取模型的实例;

$MyModel = ClassRegistry::init('Donation');

$result  = $MyModel->methodName();
$resultB = $MyModel->anotherMethod();

甚至不需要添加App::uses(...),ClassRegistry应该照顾它。