通过yii2中的表名称获取模型

时间:2019-01-29 14:39:02

标签: yii2 yii2-model

我在几种模型中有一种方法,以不同的方式实现。 我只知道数据库中表的名称。我必须找到此表的模型。 怎么办?

root /var/www/example.com;
index index.html;

location / {
    try_files $uri $uri/ @backend;
}

location @backend {
    ...
}

和一些模型实现它。例子

interface BaseIndexedModel
{
    public function writeSometext();
}

接下来在某个事件上,我需要调用所需的模型和此方法。但是当我打电话时,我只会知道数据库表,而不会知道模型。

如果表“第一”,则class First extends \yii\db\ActiveRecord implements BaseIndexedModel { public function writeSometext(){ return "1"; } } class Second extends \yii\db\ActiveRecord implements BaseIndexedModel { public function writeSometext(){ return "2"; } } 如果表为“第二”,则First::writeSometext();

1 个答案:

答案 0 :(得分:1)

当您获得表名时,您可以使用这种方式

public function getModelName($table_name) {
    $table_name = 'first_table';  
    // $table_name = 'first';// if name is single word then comment the next line
    $table_split = explode("_",$table_name);
    $model = ucfirst($table_split[0]).ucfirst($table_split[1]);
    return $model;
}

您可以调用此功能 并检查是否存在

$model = getModelName($table_name);
var_dump($model);