如何在cakephp 3中获取我的表的className?

时间:2015-02-15 08:16:49

标签: associations cakephp-3.0

在我的AcosTable.php中我有

$this->hasMany('ChildAcos', [
    'alias' => 'ChildAcos',
    'className' => 'Acos',
    'foreignKey' => 'parent_id'
]);

我需要appController中的表名(className属性)。在我的appController中我有

$associations = $this->{$this->modelClass}->associations();
foreach ($associations->type('HasMany') as $item) {
    $options['name'] = $item->name();             //ChildAcos
    $options['foreignKey'] = $item->foreignKey(); //parent_id
    //$options['className'] = $item->?();         //Acos
    $hasMany[] = $options;
}

如何检索className?

1 个答案:

答案 0 :(得分:0)

与所有其他关联选项相反,似乎无法掌握Association::$_className的价值,您可能希望在GitHub报告这一点,我认为它不会伤害使这个也可以访问(至少可读)。

现在似乎所有你能做的就是从目标表中获取完整的类名,例如:

$fqn = get_class($item->target());
$parts = namespaceSplit($fqn);
$className = substr(end($parts), 0, -5);