Joomla 3.x - 保存多个选择列表数据的好方法?

时间:2015-05-22 09:00:50

标签: joomla

我有一个joomla组件,我添加了一个多选列表并进行了一些组件核心编辑。我很惊讶我必须进行这样的编辑才能保存多选数据。不应该让joomla核心能够做到这一点吗?

无论如何,这就是我所做的,但我想知道你推荐什么是更好的方法。我听说过插件可能是要走的路,但我没有使用joomla插件的经验,也不确定如何使用它们。

xml是

<field
name="expertise"
type="list"
label="Area of Expertise"
required="true"
multiple="true"
/>

在模型中,我将其添加到LoadFormData

if ( ! is_array($data->expertise))
    {
        $data->expertise= explode(',', $data->expertise);
    }

在控制器中我添加了这个

protected function postSaveHook(JModelLegacy &$model, $validData = array())
{

    if(isset($validData['expertise'])){
        if (is_array($validData['expertise'])) $data['expertise'] = implode(',', $validData['expertise']);
    }

    $model->save($data);
}

关于更好/更合适的方法的想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

对我来说没问题。

我只是好奇你为什么不在这样的结构中进行数据检查:

if(isset($validData['expertise']) && is_array($validData['expertise']))
{
    $data['expertise'] = implode(',', $validData['expertise']);
}

这更容易阅读IMO。

我认为你的方法与http://www.component-creator.com的方法非常相似。您可以尝试使用多个选择字段构建组件,并查看它生成的代码如何比较。