填充 ATK4 中的下拉列表

发布于 2024-12-07 16:55:30 字数 269 浏览 0 评论 0原文

function init(){
    parent::init();
    $f = $this->add('Form');
    $f->addField('dropdown', 'Label:')->setModel('User');
}

因此,此代码将输出一个下拉列表,其中填充了与模型 User 相关的表中的值,但这些值将是模型中 name 字段的值。

有没有办法使用模型的另一个字段来填充它?

function init(){
    parent::init();
    $f = $this->add('Form');
    $f->addField('dropdown', 'Label:')->setModel('User');
}

So this code will output a dropdown list populated by the values in the table asosiated with the model User, but the values will be does of the name field in the model.

Is there a way to use another field of the model to populate this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

久隐师 2024-12-14 16:55:30

没有直接的办法。首先,您确定不必使用“引用”类型而不是下拉列表吗?

其次,免费是如何实现的:

class Model_User_BySurname extends Model_User {
    public function getListFields(){
        return array('id'=>'id','surname'=>'name');
    }
}

然后更进一步:

$form->addField('reference','Label')->setModel('User_BySurname');

当然,您可以通过创建某种“setNameField('surname')”函数和 getListFields 中使用的隐藏属性,在模型中重新定义该字段。

No direct way. First, are you sure you don't have to use 'reference' type instead of dropdown?

Secondly, free is how:

class Model_User_BySurname extends Model_User {
    public function getListFields(){
        return array('id'=>'id','surname'=>'name');
    }
}

then further:

$form->addField('reference','Label')->setModel('User_BySurname');

Of course you can make this field re-defineable in your models, by creating some sort of "setNameField('surname')" function and hidden property used in getListFields.

一身骄傲 2024-12-14 16:55:30

这已经改变了,我花了一些时间才弄清楚现在如何做到这一点。

class Model_MyModel extends SQL_Model {
  public function init() {
    parent::init();
    $this->addField('titleField');
  }

  public function getTitleField() {
    return 'titleField';
  }
}

$form->addField('dropdown', 'Label')->setModel('MyModel');

This has changed and took me some time to figure out how to now do this.

class Model_MyModel extends SQL_Model {
  public function init() {
    parent::init();
    $this->addField('titleField');
  }

  public function getTitleField() {
    return 'titleField';
  }
}

$form->addField('dropdown', 'Label')->setModel('MyModel');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文