Cakephp 3:没有使用加入是否可以在模型中加载另一个模型?

时间:2016-07-12 12:20:38

标签: cakephp cakephp-3.x

在控制器中,我可以使用table方法在cakephp中获取另一个表数据。但是在模型中是否可以?例如,我使用了ORM / Table类。我使用$this->table('blogs'); 方法定义了我的表名。如下面的代码

word-wrap: break-word;

是否可以在没有关联的情况下以相同的方式声明另一个表?

注意:我可以在控制器中执行此操作。

1 个答案:

答案 0 :(得分:0)

如果要在另一个表中加载模型,可以使用TableRegistry Reference

use Cake\ORM\TableRegistry
$otherTable = TableRegistry::get('other');
//do something with the other table
//example
$someRecord = $otherTable->find()->first();

如果您的模型与您想通过关联加载的其他模型相关联(belongsTo,hasOne等),那么您可以直接使用它,例如:

$this->otherModel->find()->contain()->where(['someCondition' => 'value'])->first()

话虽如此,如果您正在尝试这样做,您实际上无法将两个表定义为一个。您可以在另一个表中加载和使用不同的表,但不能在一个表类下定义两个表。

我真的不明白为什么你不想在这里定义一个关联,因为它听起来就像你应该做的那样,但我希望表注册表选项能够覆盖你