【问题标题】:How do you concatenate two variables for the text of a select.genericlist如何为 select.genericlist 的文本连接两个变量
【发布时间】:2011-05-07 20:44:33
【问题描述】:

在这个 select.generic 列表中,我想为这个列表的“文本”连接两个变量/字段。这是一个有效的列表。

<?php echo JHtml::_('select.genericlist',  $this->assets, 'id', 'class="inputbox"      onchange="document.location.href = this.value"', 'link',  'serialnumber' , $this->asset->link);?>

“序列号”是用于列表文本的字段,我正在尝试获取“型号”和“序列号”,以便在选择列表中显示“型号:序列号”。

我为连接找到的所有内容都不起作用,并且似乎只是创建了一个字符串 'model:serialnumber' 这是一个不存在的字段。

使用 $model 。 $serialnumber 也是不行的,尽管只使用一个变量就可以了。

感谢您的帮助!

【问题讨论】:

    标签: list select joomla concatenation field


    【解决方案1】:

    最简单的事情就是在数据库级别进行连接。 因此,在生成 $this->assets 时,您可以在查询中添加如下内容:

    SELECT bla1, bla2, CONCAT('Model: ', bla3) AS text ...
    

    SELECT bla1, bla2, CONCAT(model, ': ', serialnumber) AS text ...
    

    如果模型是一个数据库字段。

    【讨论】:

    • 我能够将您的代码作为` $query->select( $this->getState( 'list.select', 'a.id, a.name, CONCAT(a.model, \': \', a.serialnumber, )AS modelserial, ....') ` 并且它正在工作,除了不在选择列表中。我可以在代码中的其他任何地方使用“modelserial”,它工作得很好。我我一辈子都找不到模型中的任何地方来影响选择列表。所以,concat 部分很好,但我不知道在哪里更改查询以影响列表。
    • 好的,我发现我必须在类别模型而不是资产模型中进行相同的更改。现在一切正常。谢谢!
    【解决方案2】:

    按照 Mike 所说的,我发现我需要在组件的类别模型中对查询进行更改。我浪费了很多时间认为它必须在资产模型中:

    $query->select($this->getState('list.select', 'a.id, a.name, CONCAT(a.model,\': \', a.serialnumber)AS modelserialnumber, ...
        $query->from('`#__asset_details` AS a');
    

    感谢迈克的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2011-11-30
      • 2018-11-24
      • 1970-01-01
      相关资源
      最近更新 更多