代码之家  ›  专栏  ›  技术社区  ›  Ramon Marco L. Navarro

更改包含的模型或数组转换的find()类型

  •  0
  • Ramon Marco L. Navarro  · 技术社区  · 16 年前

    我有以下模型关联:

    Response->Survey
    Response->Question
    Response->Choice
    Survey->Question
    Question->Choice
    

    我想创建一个表格,在那里我可以回答一次调查的所有问题。因此,我使用以下方法返回所需的数据:

    $questions = $this->Response->Question->find('all', array(
        'conditions' => array('survey_id' => $id), 
        'contain' => array('Choice')
        )
    );
    

    Sample output debug($questions) .

    问题

    1. 有什么问题吗 contain() 选项,以便在 find('list') format 所以我可以用:

      $此->窗体->select('field_name',$question['Choice']); }

    2. 如果没有可用的选项,我如何使用PHP的内置数组方法来实现这一点?

    注:foreach块不会变成代码块。如果有人可以编辑和修复它,请这样做,并删除这一行。非常感谢。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Ramon Marco L. Navarro    16 年前

    它使用了:

    $keys = array();
    $values = array(); 
    
    foreach($question['Choice'] as $choice) {
        array_push($keys, $choice['id']);
        array_push($values, $choice['choice']);
    }
    $choices = array_combine($keys, $values);
    

    “原始”选项仍在$questions数组中,未修改。如果有人知道更好的方法,请贴出来。非常感谢。

    推荐文章