cakephp2.x hasMany で saveAll

2013年4月11日更新 view: 87 view

photoBy: http://www12.ocn.ne.jp/~casa/photo/hb_02.jpg

hasMany save するには

cakephp2.xでの情報

スポンサードリンク

条件

  • 記事 Artilce.php 。記事のタグを保存する Tag.php
  • 記事 1 に対して タグは 多 一対多

モデルを用意

Article.php

<?
    class Article extends AppModel {

        var $hasMany = array(
            'Tag' => array(
                'foreignKey' => 'foreign_key',
            ),
        );

    }
?>

Tag.php

<?
    class Tag extends AppModel {            
    }
?>

データベースを作成

Article用 DB

CREATE TABLE IF NOT EXISTS `rentomo_articles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`body` text NOT NULL,
`modified` datetime NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=ujis AUTO_INCREMENT=37 ;

Tag用 DB

CREATE TABLE IF NOT EXISTS `rentomo_tags` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=ujis AUTO_INCREMENT=19 ;

保存、読み出しをする

適当なコントローラー

function index()
{

$f = $this->Article->find('all');
pr($f);

$data = array(
  'Article' => array(
   'name' => 'りんご',
  ),
  'Tag' => array(
   0 => array(
    'name' => '甘い'
   ),
   1 => array(
    'name' => '赤い'
   ),
  )
);

if($this->Article->saveAll($data)){
 
}
}

たったこれだけで、 hasMany の保存、読み出しができます

スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

12月8日 ( 土 ) にアクセスが多かった記事はこちら!