小编DJ *_*Far的帖子

如何从行为中的事件获取tablename

我在CakePHP 3.0.11中编写了一个行为,我可以在我的行为的beforeSave()方法中使用var_dump()和Log :: debug()$ event对象,并且可以看到对象数据,但无法访问对象的属性.我只是想从对象中获取表(别名,className,tablename,any)名称.
我想在我的行为中做这样的事情:

public function beforeSave(Event $event, Entity $entity)
{
    $table = $event->_alias;
    // etc.
}
Run Code Online (Sandbox Code Playgroud)

我尝试了事件的subject()方法,该方法从事件中提取表对象,

$table = $event->subject();
Run Code Online (Sandbox Code Playgroud)

当我var_dump或调试返回的对象时,它显示:

Debug: App\Model\Table\CompaniesTable Object
(
    [registryAlias] => Companies
    [table] => companies
    [alias] => Companies
    [entityClass] => App\Model\Entity\Company
    [associations] => Array
        (
            [0] => defaultshippingusers
    (...)
    [defaultConnection] => default
    [connectionName] => default
)
Run Code Online (Sandbox Code Playgroud)

但我不能从我的$ table对象访问'table','alias'等.当我这样做时,我得到一个致命的错误:

表公司与'别名'无关

有一种简单的方法可以从行为中的$ event对象中获取Table名称吗?

cakephp-3.0

1
推荐指数
1
解决办法
1524
查看次数

标签 统计

cakephp-3.0 ×1