我有两个模型类(表),我在两个表之间没有任何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剂量不存在
答案 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();
}