型号参考和Lister

时间:2013-11-23 14:22:41

标签: atk4


我有一个问题 - 如何在Lister中获取和显示引用模型的数据?
引用表结构(模型用户):

  

id |登录|密码| realName |电子邮件


参考逻辑(模型发布):

$this->hasOne('User', 'author');

模板:

Author: <?realName?><?/?>

但是空洞,我做错了什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是:

  • 在用户模型
  • 中将realName字段设置为标题字段(非常合乎逻辑)
  • 并在Lister中使用该标题字段(应该是自动的)

因此,在用户模型中,您必须添加:

public $title_field = 'realName';

在Lister中,$lister->setModel($user_model)可能已经足够了。

修改 如果你想在你的网格中添加相关模型中的字段(比方说电子邮件),那么你可以在Post模型中使用leftJoin,就像这样(未经测试):

class Model_Post extends SQL_Model{

function init(){
    parent::init();
    // ... define your fields

    // add left join to related TABLE (not model)
    $join_users = $this->leftJoin('user', 'author_id');

    // add field from joined table (not model)
    $join_users->addField('email'); // it's not $this->addField(), but $join->addField() !!!
}
}

这将在您的Post模型中创建字段电子邮件,并且将填充相关表格中的值。