我在几种模型中有一种方法,以不同的方式实现。 我只知道数据库中表的名称。我必须找到此表的模型。 怎么办?
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();
答案 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);