当前位置: 首页 > 知识库问答 >
问题:

十月CMS后端列表的列获取数组键值

冀景明
2023-03-14

嗨,我是新来的。我在模型类中定义了如下所示的方法。该方法还用于在后端表单中显示select选项。此方法返回一个数组,其中键是与db中的字段值类似的值。我将该方法定义为静态方法,因为在前端也建议使用该方法,在前端我获取函数并使用db record对其进行处理,然后对其进行迭代,以显示与键匹配的数组的值。一切都很好。事情在我的专栏里。yaml文件,如何列出与db记录匹配的方法数组值,就像我在前端所做的那样。

public static function getSampleOptions()
{
    return[
          '1'=>'Sample1',
          '2'=>'Sample2'
          ];
}

共有2个答案

上官恩
2023-03-14
break a for loop in october cms template if condition not satisfied?

{% for key, pTest in pack.products %}
                                {{loop.length}}
                                <li>{{pTest.productable.name}} {{ key }}</li>
                                {% if key == 2 %}
                                <li class="more">...</li>
                                {% endif %}
                                {% endfor %}
欧阳正卿
2023-03-14

朋友们好,我在10月CMS帮助/支持的帮助下找到了答案http://octobercms.com/index.php/forum/post/dropdown-shows-its-value-than-key-name-in-list-controller并引用了拉威尔的一些概念。

模型类方法

public static function getSampleOptions()
{
    return[
      '1'=>'Mobile App',
      '2'=>'Web  App'
      ];
} 

柱。Yaml文件

sample:
    label: Sample Column
    type: dropdown

再次回到模型中,声明attributes对象,并将文件名包含为带有空值的key

public $attributes = ['sample'=>''];

定义getfield_name属性()函数,为列中的相应键设置关联值

public function getSampleAttribute()
{
    $result = $this->attributes['sample'];
    $options = $this->getSampleOptions();

    foreach($options as $key=>$value)
    {
        if($key == $result)
        {
            return $value;
        }
    }
}

更新解决方案以纠正问题,同时编辑记录非常简单。创建分部并修改字段。亚马尔

_sample_options.htm(部分)//文件名应以with_开头(下划线)

<?php
$fieldOptions = $model->getSampleOptions();
$sample = $model->attributes['sample'];
?>
<select id="<?= $field->getId() ?>" name="<?= $field->getName() ?>" class="form-control custom-select" <?= $field->getAttributes() ?>>
    <?php foreach($fieldOptions as $key=>$label)
    {
    ?>
        <option value="<?= $key ?>"  <?php echo ($sample == $key)?"selected":'';  ?>><?= $label ?></option>
    <?php
    } ?>
</select>

这里的$model和$field是用于访问预期模型的方法和属性的部分变量。文档:https://octobercms.com/docs/backend/forms#field-partial

领域。Yaml文件

sample:
    label: Sample Field
    type: partial
    path: $/october/demo/controllers/sample/_sample_options.htm //path where the partial is located in the controller view
 类似资料:
  • 问题内容: 我在Javascript中有一个关联数组: 我如何获得这本字典的钥匙?即我想要 七年后的编辑:为了使术语正确-在Javascript中没有“关联数组”之类的东西-从技术上讲,这只是一个并且是我们想要的对象键。 问题答案: 您可以使用: 例: 请参阅下面的参考以获取浏览器支持。Firefox4.20,Chrome5,IE9支持该功能。如果浏览器不支持,则下面的链接包含一个代码片段,您可以

  • 问题内容: 假设我有3个列表:[‘q’,’w’],[‘a’,’s’],[‘z’,’x’]。如何从这些列表中获取可能的组合列表?所以我得到一个列表[[‘q’,’a’,’z’],[‘q’,’s’,’z’]]等。我为两个方法创建了一个方法,但对N个列表却找不到一个方法: 我发现这是由番石榴的Sets.cartesianProduct完成的。 问题答案: 您需要N个嵌套循环,这使它变得很难。 您可以使用递

  • 问题内容: 我有一个JavaScript对象,例如 如何获取此对象中键的长度和列表? 问题答案: var obj = {

  • 我在数组列表(嵌套数组列表)中有一个数组列表,如下所示 现在我需要获取存在于arraylist的给定索引中的的实例并为其添加一个值。我使用了以下代码 但是它给了我一个错误 线程"main"java.lang.异常索引:0,大小:0 如何解决这个问题以及为什么会发生这种情况。 谢谢你

  • 未在数据库中插入多选值。 我的田地。yaml代码为: 我的模型代码是: 目前只有一个选定的值插入database.need在数据库中添加多个值。有人能解决它吗?

  • 如何将spark数据框中的所有列名放入Seq变量中。 输入数据 我需要使用scala编程将所有列名存储在变量中。我尝试了如下方法,但不起作用。 预期输出: