如何从控制器输出创建Lithium-form-> select

时间:2012-10-22 06:57:58

标签: forms mongodb lithium

我想在MongoDB集合中为MongoDB创建类型集合的下拉列表:

部分包含带有视图代码的类型和控制器代码。我想从控制器的输出中创建一个form->select

    types
    {
      "_id": ObjectId("5082c6109d5d0c640c000000"),
      "name": "JACKET CLUSTER FRONT"
    }
    {
      "_id": ObjectId("5082c62b9d5d0c440c00006e"),
      "name": "JACKET CLUSTER FRONT"
    }
    {
      "_id": ObjectId("5082c62b9d5d0c440c00006f"),
      "name": "TITLE WITHOUT SYMBOL"
    }
    {
      "_id": ObjectId("5082c62b9d5d0c440c000070"),
      "name": "FRONTISPIECE"
    }
*/

// in my controller
// -----------
    $types = Types::all(array('order'=>'_id'));
    $vtype = array($types)
    return compact('vtypes');

// in my view
// ------------------
    echo $this->form->select('types',$vtypes);

2 个答案:

答案 0 :(得分:3)

find('list')返回一个键/值数组,对于您需要列表的任何用途都很有用,例如填充输入选择框。

$types = Types::find('list')

//returns
Array
(
[5082c6109d5d0c640c000000] => 'JACKET CLUSTER FRONT',
[5082c62b9d5d0c440c00006e] => 'JACKET CLUSTER FRONT',
[5082c62b9d5d0c440c00006f] => 'TITLE WITHOUT SYMBOL',
...
)

此查找程序会查找您的模型的$_meta['title'],如果此字段可用,则默认为name$_meta['key']的{​​{1}}应为id 1}}如果您的架构正确

答案 1 :(得分:0)

最后,我用它来实现结果。

Types::meta('key', '_id');
Types::meta('title', 'filename');

$types = Types::find('list',array(
'fields'=>array('id','filename'),
'order'=>'id'));