hasManyを保存する[saveAssociated ]

http://book.cakephp.org/2.0/ja/models/saving-your-data.html
https://github.com/markstory/cakephp-docs/blob/master/ja/models/saving-your-data.rst
[php]
CREATE TABLE `coursememberships` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`days_attended` varchar(255) NOT NULL,
`grade` varchar(255) NOT NULL,
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;

CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(255) NOT NULL,
`last_name` varchar(255) NOT NULL,
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;

CREATE TABLE `courses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;
[/php]
[php]
// Controller/CourseMembershipController.php
class CourseMembershipsController extends AppController {
public $uses = array(‘CourseMembership’);

public function index() {
$this->set(‘courseMembershipsList’, $this->CourseMembership->find(‘all’));
}

public function add() {
if ($this->request->is(‘post’)) {
if ($this->CourseMembership->saveAssociated($this->request->data)) {
$this->redirect(array(‘action’ => ‘index’));
}
}
}
}

// View/CourseMemberships/add.ctp

<?php echo $this->Form->create(‘CourseMembership’); ?>
<?php echo $this->Form->input(‘Student.first_name’); ?>
<?php echo $this->Form->input(‘Student.last_name’); ?>
<?php echo $this->Form->input(‘Course.name’); ?>
<?php echo $this->Form->input(‘CourseMembership.days_attended’); ?>
<?php echo $this->Form->input(‘CourseMembership.grade’); ?>
<button type="submit">Save</button>
<?php echo $this->Form->end(); ?>
[/php]

[php]
// View/CourseMemberships/add.ctp

<?php echo $form->create(‘CourseMembership’); ?>
<?php echo $this->Form->input(‘Student.id’, array(‘type’ => ‘text’, ‘label’ => ‘Student ID’, ‘default’ => 1)); ?>
<?php echo $this->Form->input(‘Course.id’, array(‘type’ => ‘text’, ‘label’ => ‘Course ID’, ‘default’ => 1)); ?>
<?php echo $this->Form->input(‘CourseMembership.days_attended’); ?>
<?php echo $this->Form->input(‘CourseMembership.grade’); ?>
<button type="submit">Save</button>
<?php echo $this->Form->end(); ?>
[/php]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です