2014-03-26 27 views
0

我與CourseMembership的hasMany玩耍通過例如在CakePHP的食譜,但我無法弄清楚如何添加一個新的課程,並多次進入CourseMembership(即student_id數據和等級)都在同一時間。的hasMany通過多個條目 - 新

場的hasMany Coursemmembership
學生的hasMany Coursemeembership
Coursemembership屬於關聯學生,場

//CoursemmembershipsController 
public function add() { 
    if ($this->request->is('post')) { 
     $this->Coursemembership->create(); 
     if ($this->Coursemembership->saveAll($this->request->data,array('deep' => true))) { 
      $this->Session->setFlash(__('The coursemembership has been saved.')); 
      //return $this->redirect(array('action' => 'index')); 
     } else { 
      $this->Session->setFlash(__('The coursemembership could not be saved. Please, try again.')); 
     } 
     debug($this->request->data); 
    } 
    $courses = $this->Coursemembership->Course->find('list'); 
    $students = $this->Coursemembership->Student->find('list'); 
    $this->set(compact('courses', 'students')); 
} 

__

//Coursemembership/view/add 
$this->Form->create('Coursemembership'); 


    echo $this->Form->input('Course.name'); 
    echo $this->Form->input('0.Coursemembership.student_id'); 
    echo $this->Form->input('0.Coursemembership.grade'); 

    echo $this->Form->input('1.Coursemembership.student_id'); 
    echo $this->Form->input('1.Coursemembership.grade'); 
?> 

的數據數組成功保存,插入一個新的課程細,但只插入1沒有student_id或成績的課程入口。

數據陣列的樣子:

array(
'Course' => array(
    'name' => 'Math 101' 
), 
(int) 0 => array(
    'Coursemembership' => array(
     'student_id' => '1', 
     'grade' => '5' 
    ) 
), 
(int) 1 => array(
    'Coursemembership' => array(
     'student_id' => '2', 
     'grade' => '2' 
    ) 
) 

回答

0

從表單輸入刪除Coursemembership ---使用此

echo $this->Form->create('Coursemembership'); 
    echo $this->Form->input('Course.name'); 
    echo $this->Form->input('0.student_id'); 
    echo $this->Form->input('0.grade'); 

    echo $this->Form->input('1.student_id'); 
    echo $this->Form->input('1.grade'); 
    echo $this->Form->end('save'); 
+0

這一個似乎也沒有工作 - 課程創建,但只有一個條目保存在Coursemembership,沒有student_id和沒有成績。 – Nate88

+0

你說好像?你有沒有試過?首先,如果你使用CoursesController這將是小菜一碟...我不明白你爲什麼創建一個額外的控制器!其次,你陣列高度重視和看起來像 ' 陣列( \t '課程'=>陣列( \t \t '名'=> '' \t), \t 'Coursemembership'=>陣列( \t \t( INT)0 =>數組( \t \t \t '級'=> '' \t \t) \t \t(INT)1 =>數組( \t \t \t '品位'=>' \t \t) \t) ) ' –

+0

是的我也試試。我使用了Coursemembership控制器,因爲這是使用文檔中的一個類似示例(http://book.cakephp.org/2.0/en/models/saving-your-data.html - 在保存hasMany之下)。如果我在課程控制器中做了這個視圖,看起來會是什麼樣子? – Nate88

0

明白了!我按照建議使用課程控制器,並使用以下課程/添加視圖,現在可以使用。謝謝

echo $this->Form->input('Course.name'); 
    echo $this->Form->input('Coursemembership.0.student_id'); 
    echo $this->Form->input('Coursemembership.0.grade'); 
    echo $this->Form->input('Coursemembership.1.student_id'); 
    echo $this->Form->input('Coursemembership.1.grade');