• ベストアンサー

CakePHP内でテーブルを作成する方法

とあるデータを挿入した時に自動的に新しいテーブルが作成されるプログラムを作りたいのですがCakePHPで実現するのはどうすれば良いでしょうか? テーブルを操作するためにはModelを作る必要があるかと思いますが、いまいち情報をさがせずにおります。 参考URLのみでもかまいませんのでよろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

cakePHP のコンセプトとして、サイト構築の根幹となるtable は管理者のコントロール下に作成する(コマンドラインでの作成ツールはある)のみで、利用者からのアクセスに連動して新規作成させる機能はありません。 それでも、dummy table を作っておいて、Dummy モデルから、直に table create 用のSQL文を model->query() メソッドで実行してしまうという荒技も無くはないですけど、SQL injection の危険性が大きくなりますので、十二分にSQL文構築法をご検討ください。

kazumae
質問者

お礼

回答ありがとうございます。 そういう考え方なのかな、と薄々は感じていたのですが。。やはりそうなのですね。 テーブルをcreateしない別の方法を検討してみます。ありがとうございました。

関連するQ&A

  • cakephpでテンポラリテーブル

    お世話になります。ご助力頂ければ幸いで御座います。 ---------------------------- PHP Version 5.6.14 cakephp 2.5系 mariadb-10.0.21-with-mroonga-5.08-winx64 ---------------------------- cakephpで以下の事がやりたいです。 (1)select文を使用してデータの抽出 (2)(1)を利用してテンポラリテーブルを作成。 (3)web上で検索結果を表示。 ※ページングを行いたのでcakePHPでページネーションを使用したいです。 (4)次ページやソート変更の際にはテンポラリテーブルからselect。 cakephpでテンポラリテーブルを作成、使用する場合のやり方がわからず、 頓挫しております。 お手数をお掛け致しますが、 何かご指摘点でも構いませんので、ご回答頂ければ幸いで御座います。

    • ベストアンサー
    • PHP
  • CakePHPのコントローラの作成

    PHP初心者です。 CakePHPをインストールし試しにTestControlerを作成したのですが、ページが開きません。 PageNotFoundになります。 考えられる原因が分かれば教えて下さい。 【やったこと】 ・ [CakePHP root]\app\Controller に TestController.php を作成。 <?php App::uses('AppController', 'Controller'); class TestController extends AppController { } ・ URLにアクセス http://[CakePHP root]/Test ⇒ Not Found http://[CakePHP root]/test ⇒ Not Found http://[CakePHP root]/app/webroot/index.php?url=test ⇒ CakePHPのindex.phpが表示される。 http://[CakePHP root]/app/webroot/index.php?url=Test ⇒CakePHPのindex.phpが表示される。 以下のサイトを参考にしました。mod_rewriteが動いていない可能性がある ということなので、URL直接指定もしてみましたがダメでした。 http://codezine.jp/article/detail/768?p=2 よろしくお願いします。

    • ベストアンサー
    • PHP
  • cakePHPのモデルについて

    cakePHPのモデルについて 今までずっとPHP+smartyでやってきました。 今回はじめてcakePHPを使ってみたのですが、 私はモデルというものがとても使いにくいように感じました。 バリデーションは便利だと思いますが。 (ちなみにまだcakePHPを使い始めて2日目です。) 今までずっとデータの抽出はSQL文を書いており、 find関数の引数にwhere句の条件等をするのはとてもめんどくさいと感じています。 参考までにモデルについて、いい所と悪い所を聞きたいと思います。 よろしくお願いします。

    • 締切済み
    • PHP
  • Cakephpでランキング機能の作成方法について。

    Cakephpでランキング機能の作成方法について。 Cakephpで、お気に入り数順のランキング機能を作りたいと考えています。 以下のような構造でランキングを表示させたいのですが、 やり方が分からず困っています。 ■システム概要 コーヒーの紹介サイトです。 様々なコーヒーが登録されており、ユーザーは任意のコーヒーをお気に入り登録できます。 Coffeeテーブル id , name Userテーブル id , name Favoriteテーブル id , coffee_id , user_id 現在、ランキングを表示させたいページであるindex.ctpには、$this->Coffee->find();でCoffeeの情報を表示させています。 アソシエーションでUserテーブル、Favoriteテーブルの情報も取れていますが、これをお気に入り数順にソートするやり方がわかりません。宜しくお願いします。

    • ベストアンサー
    • PHP
  • cakePHPのビュー切り替えについて

    cakePHPのについての質問です。 cakePHPは勉強しつつ初心者なのですが、現在スマートフォン向けのwebアプリケーションを作成しています。これからPC版に対応させようと思うのですが、機能がそのままでビューを切り替える際に効率の良い方法があれば教えて頂きたいです。 参考URLなどありましたら教えて頂きたいです。よろしくお願いします。

    • 締切済み
    • PHP
  • Excelのテーブル定義書からテーブルを作る方法

    Excelで作成したテーブル定義書から、自動的にDBのテーブルを 作成したいのです。 何かよいフリーウェア、または参考情報があれば教えてください。 よろしくお願いします。

  • cakephpでコントローラー名と異なるテーブルの設定の仕方

    はじめまして。 cakephpでサイトを作っていますが、テーブル名がsitesとしてあるため、コントローラー名(SitesController)となり、もちろんURLがhttp://hoge.com/sites/となります。 これをテーブル名はsitesのままでコントローラー名とURLを別の任意のものにすることは可能でしょうか? 例 テーブル名:sites コントローラー名:managesController URL:http://hoge.com/manages/ 逆でもOKです。 テーブル名:manages コントローラー名:sitesController URL:http://hoge.com/sites/ また、こういう場合viewとmodelの命名はどのようにしたらよいでしょうか? どなたか、ご教授いただければ幸いです。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • VBAでピポットテーブルを作成したいのですが・・・・

    VBAを使いピボットテーブルを自動的に再作成(データが追加更新されていく為)したいのですがうまくいきません、何方か良い方法を教えて下さい、参考URLでも構いません、宜しくお願い致します。

  • cakephp2.5のフォームデータの受け渡し

    CakePHP2.5でフォームからpostでデータをコントローラで受け取って 別のページで表示するにはどうすればいいでしょうか フレームワークを使用しない普通のPHPならば以下のようになります。 $_POST('paramater'); ただ、CakePHPの場合だとどのようにしていいか不明です。 調べた結果以下のものが出てきたのですが 今回はモデルを使用しないでデータを受渡ししようと思っています。 $this->request->data['model']['field']; モデルを利用しないでデータの受け渡しをする方法をお教えください。 なかなかいい参考資料も出てきません

    • 締切済み
    • PHP
  • CAKEPHP current_timestamp

    会社でCAKEPHPを導入する事になり、 今迄のべた書きソースを載せ変える事になりました。 CAKEPHPはまだ触った事がなかったので、 色々手間取っています。 そこで、current_timestampについて質問です。 テーブル:Sample 項目 Aid Btime 上記テーブルに insert into sample(1,current_timestamp)としていたソースがあり、 CakePHPにてコントローラからモデルにパラメータを渡してsave()したところ 怒られました。 色々調べましたが、current_timestampは使えなず、modifiedを付けると・・・ と言うような内容を見つけました。 Cakeがどういう動きをしているかも分かっていない状況で申し訳ありませんが、 どう対応すればいいのか教えて頂けると幸いです。 以上、宜しくお願い致します。

    • ベストアンサー
    • PHP