Yii2表达式不起作用

时间:2015-03-29 10:29:28

标签: php yii2

我有两个模型类(表),我在两个表之间没有任何FK

表1:[' id',' name' ] 表2:[' id',' status' ,'控制器']

table2是一个通用表,可以与许多其他表动态相关,所以有任何FK

在table1的模型类中我想编写getTable2方法,该方法使用静态控制器名称获取table2中的所有记录

我的代码

use yii\db\Expression;
.....

public function getTable2s()
    {
        return $this->hasMany(Table2::className(), ['controller' => new Expression('table1-controller')]);
    }

我希望请求采用' table1-controller'作为一个字符串值,但我的问题是我有一个错误

未定义列:7 ERREUR:列table1.table1-controller剂量不存在

2 个答案:

答案 0 :(得分:0)

错误很明显。验证您的数据库架构。字段/属性命名或函数中的映射可能存在错误。

答案 1 :(得分:0)

你可以找到table2项目:

$table2Objects = Table2::find()->where(['controller' => 'table1-controller')])->all();

但是如果它与table2类无关,我不会在table1类中创建一个方法getTable2s。或者,您可以向table2类添加静态方法:

public static function findEntries($controller) {
    return self::find()->where(['controller' => $controller])->all();
}