Submit Search
Upload
CakePHP 2.x 複数レコード同時保存
•
Download as PPTX, PDF
•
0 likes
•
1,615 views
Tomo Mizoe
Follow
入力フォームを追加するために、ちょっと jQuery 使います。 適切な配列を用意して、saveAll() に与えます。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 7
Download now
Recommended
CakePHP でお小遣い帳をつくってみよう
CakePHP でお小遣い帳をつくってみよう
Tomo Mizoe
WordPress のキャッシュ機構
WordPress のキャッシュ機構
katanyan
test
test
a1yama1123
Factor型の注意点
Factor型の注意点
Hiroki K
WordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えよう
Naoki Matsuda
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Tsuyoshi Yamamoto
XOOPS Cube Conference 2012 Developer Workshop 3
XOOPS Cube Conference 2012 Developer Workshop 3
Hikawa Kilica
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
Recommended
CakePHP でお小遣い帳をつくってみよう
CakePHP でお小遣い帳をつくってみよう
Tomo Mizoe
WordPress のキャッシュ機構
WordPress のキャッシュ機構
katanyan
test
test
a1yama1123
Factor型の注意点
Factor型の注意点
Hiroki K
WordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えよう
Naoki Matsuda
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Tsuyoshi Yamamoto
XOOPS Cube Conference 2012 Developer Workshop 3
XOOPS Cube Conference 2012 Developer Workshop 3
Hikawa Kilica
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
Ci tutorial
Ci tutorial
Kazuaki Ueda
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
Teclab3
Teclab3
Eikichi Yamaguchi
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
Kiyoshi Sawada
Development app-with-elixir
Development app-with-elixir
k1complete
WDD2012_SC-004
WDD2012_SC-004
Kuninobu SaSaki
カジュアルにソースコードリーディング
カジュアルにソースコードリーディング
Akihiro Okuno
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
今さら始めるCoffeeScript
今さら始めるCoffeeScript
Ashitaba YOSHIOKA
Rails3.1rc4を試してみた
Rails3.1rc4を試してみた
Takahiro Hidaka
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
Toshi Harada
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
Koji Ishimoto
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
Kiyoshi Sawada
PHP Object Injection入門
PHP Object Injection入門
Yu Iwama
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
Satoshi Suzuki
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
Etsuji Nakai
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
Ll xcode
Ll xcode
Net Kanayan
CodeIgniter入門
CodeIgniter入門
Sho A
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
8分で分かる最近のCakePHP
8分で分かる最近のCakePHP
Masashi Shinbara
More Related Content
What's hot
Ci tutorial
Ci tutorial
Kazuaki Ueda
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
Teclab3
Teclab3
Eikichi Yamaguchi
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
Kiyoshi Sawada
Development app-with-elixir
Development app-with-elixir
k1complete
WDD2012_SC-004
WDD2012_SC-004
Kuninobu SaSaki
カジュアルにソースコードリーディング
カジュアルにソースコードリーディング
Akihiro Okuno
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
今さら始めるCoffeeScript
今さら始めるCoffeeScript
Ashitaba YOSHIOKA
Rails3.1rc4を試してみた
Rails3.1rc4を試してみた
Takahiro Hidaka
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
Toshi Harada
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
Koji Ishimoto
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
Kiyoshi Sawada
PHP Object Injection入門
PHP Object Injection入門
Yu Iwama
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
Satoshi Suzuki
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
Etsuji Nakai
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
Ll xcode
Ll xcode
Net Kanayan
What's hot
(19)
Ci tutorial
Ci tutorial
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Teclab3
Teclab3
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
Development app-with-elixir
Development app-with-elixir
WDD2012_SC-004
WDD2012_SC-004
カジュアルにソースコードリーディング
カジュアルにソースコードリーディング
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
今さら始めるCoffeeScript
今さら始めるCoffeeScript
Rails3.1rc4を試してみた
Rails3.1rc4を試してみた
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
PHP Object Injection入門
PHP Object Injection入門
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Ll xcode
Ll xcode
Similar to CakePHP 2.x 複数レコード同時保存
CodeIgniter入門
CodeIgniter入門
Sho A
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
8分で分かる最近のCakePHP
8分で分かる最近のCakePHP
Masashi Shinbara
Fuel php osc tokyo2012
Fuel php osc tokyo2012
Fumito Mizuno
Apache 2.4 新機能 “SSL編”
Apache 2.4 新機能 “SSL編”
Ryosuke Yamazaki
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
junichi anno
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料
co-hey japan
20091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
FuelPHPでSentry導入
FuelPHPでSentry導入
fagai
CakePHP 1 to 2 Migration tips 100
CakePHP 1 to 2 Migration tips 100
ichikaway
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
Similar to CakePHP 2.x 複数レコード同時保存
(12)
CodeIgniter入門
CodeIgniter入門
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
8分で分かる最近のCakePHP
8分で分かる最近のCakePHP
Fuel php osc tokyo2012
Fuel php osc tokyo2012
Apache 2.4 新機能 “SSL編”
Apache 2.4 新機能 “SSL編”
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料
20091030cakephphandson 01
20091030cakephphandson 01
FuelPHPでSentry導入
FuelPHPでSentry導入
CakePHP 1 to 2 Migration tips 100
CakePHP 1 to 2 Migration tips 100
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
More from Tomo Mizoe
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門
Tomo Mizoe
Git入門 (Windows)
Git入門 (Windows)
Tomo Mizoe
Visual Studio2013 でGithub(1) セットアップ~同期
Visual Studio2013 でGithub(1) セットアップ~同期
Tomo Mizoe
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
Tomo Mizoe
Unity勉強会資料2014-05-31
Unity勉強会資料2014-05-31
Tomo Mizoe
MCP and Microsoft University
MCP and Microsoft University
Tomo Mizoe
More from Tomo Mizoe
(6)
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門
Git入門 (Windows)
Git入門 (Windows)
Visual Studio2013 でGithub(1) セットアップ~同期
Visual Studio2013 でGithub(1) セットアップ~同期
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
Unity勉強会資料2014-05-31
Unity勉強会資料2014-05-31
MCP and Microsoft University
MCP and Microsoft University
CakePHP 2.x 複数レコード同時保存
1.
[CakePHP 2.x] 複数レコードの同時保存 jQueryをちょっとだけ使います Github: https://github.com/mizoe/cakephp2_save_multi_records
2.
想定するテーブル • Customers • id,
created, modified, name(varchar) • Addresses • id, created, modified, address(varchar), customer_id - Customer has many Addresses - Address belongs to Customer
3.
Bake直後 レコード保存の流れ: Customer新規作成 →
Address追加 これを Customer追加の画面において、複数のAddressを追加できるようにしていく
4.
CustomersController.php にメソッドadd_all追加 • add()からコピペして編集 if
($this->Customer->addAll($this->request->data)) { $this->Session->setFlash(__('The customer has been saved.')); return $this->redirect(array('action' => 'index')); } else { $this->Session->setFlash(__('The customer could not be saved. Please, try again.')); } ここだけちょっと変更。モデルのaddAll()を呼び出します。 引数はPOSTでもらったものをそのまま。
5.
Model: Customer.php public function
addAll($data = null) { if($data == null){ // レコードがなければ return return false; } $result = $this->saveAll($data); // Cusotmer に保存 return true; } モデル間のアソシエーションが定義済みなので、saveAll()を実行すると 実はsaveAssociated() が呼び出される。 saveAssosicated は適切なデータを与えるだけで、いろいろやってくれる。 今回の場合、Customer を追加してその ID を獲得し、Address の customer_id に 割り当てる。もしすべてのレコードが保存できなければ、トランザクションをたどって 保存する前の状態に戻す(DBがトランザクションをサポートしていれば)。 詳細: http://book.cakephp.org/2.0/ja/models/saving-your-data.html
6.
View : add_all.ctp <script
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var $i = 1; $('#add_address').click(function(e) { var inputAddress = '<div class="input text required"><label for="Address' + $i + 'Address">Address</label>' + '<input name="data[Address][' + $i + '][address]" maxlength="255" type="text" id="Address' + $i + 'Address" required="required"/></div>' $('#add_address').before(inputAddress); $i++; }); }); </script> <div class="customers form"> <?php echo $this->Form->create('Customer'); ?> <fieldset> <legend><?php echo __('Add Customer with Address'); ?></legend> <?php echo $this->Form->input('name'); echo $this->Form->input('Address.0.address'); ?> <div class="submit" id="add_address"><input type="button" value="住所追加"/></div> </fieldset> <?php echo $this->Form->end(__('実行')); ?> </div> <div class="actions"> <h3><?php echo __('Actions'); ?></h3> <ul> <li><?php echo $this->Html->link(__('顧客一覧'), array('action' => 'index')); ?></li> <li><?php echo $this->Html->link(__('住所一覧'), array('controller' => 'addresses', 'action' => 'index')); ?> </li> <li><?php echo $this->Html->link(__('新しい住所'), array('controller' => 'addresses', 'action' => 'add')); ?> </li> </ul> </div> ボタンを押すと input フィールド追加 Bakeされたadd.ctpとほぼ同じ
7.
できたー https://github.com/mizoe/cakephp2_save_multi_records
Download now