Içerdiği model veya dizi dönüşümün Değişikliği find () tipi

1 Cevap php

Ben şu modeli dernekler var:

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

Ben bir anket için tüm sorulara cevap verebilecek bir form oluşturmak istiyorum. Yani gerekli veri döndürmek için aşağıdaki kullandı:

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

Sample output için debug($questions).

Questions

  1. find('list') biçiminde ilişkili bir modeli döndürür Ben kullanabilir böylece böylece contain() seçeneği vardır:

    foreach($question as $questions) { $this->Form->select('field_name', $question['Choice']); }

  2. Hiçbir seçenek varsa, ben bu PHP'nin Builting dizi yöntemleri kullanarak nasıl yapabildin?

PS: foreach blok bir kod bloğu haline çevirmek olmaz. Birisi düzenlemek ve bunu düzeltmek olsaydı, bunu yapmak ve bu satırı silin lütfen. Teşekkür ederim.

1 Cevap

Kullanmaya mı:

$keys = array();
$values = array(); 

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

'Orijinal' seçimler, $ soruları dizinin içinde hala değiştirilmemiş. Herkes daha iyi bir yaklaşım biliyorsa, bunu yayınlayın lütfen. Teşekkür ederim.