トップページ⇒php
985コメント270KB

【PHP】フレームワーク CakePHP 15ホール目【v2.2】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/12/04(火) 13:06:36.87ID:ExCLhBiP
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
Issue
http://cakephp.lighthouseapp.com/dashboard
CheatSheet[1.2] (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
[2.x] http://book.cakephp.org/2.0/ja/index.html
[1.3] http://book.cakephp.org/ja

前スレ
【PHP】フレームワーク CakePHP 14ホール目【v2.1】
http://kohada.2ch.net/test/read.cgi/php/1335859124/
0313nobodyさん2013/02/20(水) 11:52:54.92ID:???
>>312
ソース読んでみて!
面白いよw
0314nobodyさん2013/02/26(火) 18:44:02.07ID:zQtNhxoC
cakePHP2 で

[message.txt]
私の名前は、山田太郎です。
趣味はバレーです。

という様な外部ファイルにデータとかhtmlタグを設定しておき
include させたいと思いますがどこに配置するのが定石でしょうか?
0315nobodyさん2013/02/26(火) 18:58:21.14ID:???
>>314
要するに設定ファイルの設置?
0316nobodyさん2013/02/26(火) 19:54:39.42ID:zQtNhxoC
>>315
テンプレート的な意味合いです。
0317nobodyさん2013/02/26(火) 20:09:15.83ID:???
じゃ、viewsのelements
0318nobodyさん2013/02/27(水) 12:51:17.39ID:k7COWgMj
category_mediums
というテーブルを作成し、そのテーブルを参照する為に

Model/categoryMedium.php

の中に下記コードを記述したところ

class categoryMedium extends AppModel {
var $name = 'categoryMedium';


Error: Table category_media for model categoryMedium was not found in datasource default.

こーいうエラーメッセージが表示されてしまいます。
何が問題があるのでしょうか?
0319nobodyさん2013/02/27(水) 13:34:15.93ID:???
CategoryMedium

じゃないのか?
0320nobodyさん2013/02/27(水) 13:35:29.97ID:???
お前の頭だよ

mediumを英和辞書で検索しろよ人間のクズ
useTableに記述しろよ出来損ない
0321nobodyさん2013/02/27(水) 13:37:44.87ID:???
category_media テーブル
CategoryMedium モデル
0322nobodyさん2013/02/27(水) 14:08:41.58ID:???
Inflector::camelize(テーブル名) とかの結果を表示すればで簡単に確認できるぞ
0323nobodyさん2013/02/27(水) 19:23:11.08ID:1uFU2JpT
>>319 >>320 >>321 >>322
何とか解決しました。ありがとうございます。

>>322
そんな便利な機能もあったのですね。
cakeの得体のしれない命名規則に翻弄される手間が省けそうです。
0324nobodyさん2013/02/27(水) 19:26:37.46ID:1uFU2JpT
なんでcakePHPの命名規則で

中 を表わすmedium が media として

テーブル定義しないといけないか謎><;
0325nobodyさん2013/02/27(水) 20:57:48.81ID:???
つmedium_categories
0326nobodyさん2013/02/28(木) 01:25:04.41ID:???
まったくの初心者なのですが
cakephp2を用いてSNSのようなものを作りたいと考えていて
html CSSはできるのですがphpはほぼ初めてで初心者でも参考になるようなサイトなどありませんか?
お願いします
0327nobodyさん2013/02/28(木) 02:42:12.10ID:???
>>326
http://dotinstall.com/
どないです?
0328nobodyさん2013/02/28(木) 12:06:41.54ID:???
ありがとうございます
Php cake mysqlとかいろいろあって勉強なりそうです
0329nobodyさん2013/02/28(木) 16:49:01.14ID:???
Viewに最初からある、ElementsとかEmailsとかScaffoldsとかが自作フォルダと混ざって並んでて邪魔
どこか別のところに置いて欲しい
0330nobodyさん2013/02/28(木) 17:00:11.96ID:???
つかわないなら削除したらいいだろアホか
0331nobodyさん2013/02/28(木) 17:00:49.22ID:???
共有フォルダ作って、bootstrapでincludeしろよ。俺はそうしてるよ
0332nobodyさん2013/02/28(木) 21:29:21.10ID:???
何で邪魔に感じるの?
放っておけばいいじゃん
0333nobodyさん2013/03/02(土) 01:43:36.79ID:???
むしろ自分のフォルダを別のところに置けよ
0334nobodyさん2013/03/02(土) 03:08:56.61ID:???
お前らバカじゃないの?
0335nobodyさん2013/03/02(土) 14:05:34.02ID:???
>>329
お前ぜんぜん理解してないなw
0336nobodyさん2013/03/02(土) 15:54:54.28ID:???
理解してないのはお前
0337nobodyさん2013/03/02(土) 17:40:51.03ID:???
生成したモデルに少しでも手を入れた後に、テーブルに変更があって、
再生成すると、手を入れた部分が消えちゃうの、なんとかならないかなあ?
CakePHPで開発してると、テーブル構成の変更に腰が重たくなってしまう。
0338nobodyさん2013/03/03(日) 11:47:34.75ID:???
>>337
え、bake のこと?
なら最初に一回やるだけだよ
0339nobodyさん2013/03/03(日) 11:50:44.09ID:???
あと、テーブルが決まらないあいだはモデルの基底クラスに bake したのを使って、
カスタマイズはその継承クラスを作成。

で、コントローラとビューはその継承クラスを参照する scaffold でやりくりする
っていうのもうまくいく場合がある。
0340nobodyさん2013/03/03(日) 12:58:15.94ID:???
継承かぁ。
ちょっとやってみる。

2回目のBakeでは、変更部分だけ差し替えてくれるのが理想なんがw
0341nobodyさん2013/03/03(日) 16:17:06.55ID:???
>>340
diffってpatchればいいんじゃね?
0342nobodyさん2013/03/09(土) 23:49:39.09ID:0I4GbUTq
まだCake使ってる奴いたの?
こんなカスフレームワーク使うのやめろよ。
エンジニアとしての自分の格が下がるぞ?
てゆーかもう殆ど更新すらされてねーじゃん。
0343nobodyさん2013/03/10(日) 00:58:54.50ID:???
既にこれで作っちまったシステムがあるからな
今から作るなら違うのにする
0344nobodyさん2013/03/10(日) 17:43:49.35ID:???
どれにするの?
0345nobodyさん2013/03/10(日) 19:07:38.75ID:???
今って、新しすぎて業務に使いにくいやつを趣味で使って、
業務ではこなれた古いやつとして、CakePHPあたりが使われてるんだろ。
0346nobodyさん2013/03/11(月) 01:02:31.86ID:???
特に問題なければ慣れたものを使えばいいじゃん
0347nobodyさん2013/03/11(月) 01:39:55.26ID:???
問題なければな
03483462013/03/11(月) 01:45:04.83ID:???
何か問題でも?
0349nobodyさん2013/03/11(月) 11:51:03.07ID:???
重い・ファイルが多い

ってのが問題に感じてるけど、
ま、普通に動くサイトを作る点では問題ないな。
0350nobodyさん2013/03/11(月) 12:04:50.94ID:???
文句言うなら同時に代替案も出してね
0351nobodyさん2013/03/11(月) 12:18:50.51ID:???
なんでやねん
0352nobodyさん2013/03/11(月) 12:21:41.42ID:???
問題はサイトが更新されないことだろう。
ちゃんとしたドキュメントがないと使えないよ。
0353nobodyさん2013/03/11(月) 13:26:48.88ID:???
ドキュメントは分かるけど、
サイトが更新されないってなんだ?
0354nobodyさん2013/03/11(月) 14:47:53.25ID:???
日本語化の仕組みがクソすぎてワロス
あれじゃまるで信者になるための修行だわ
0355nobodyさん2013/03/11(月) 15:38:33.68ID:???
セキュリティーが心配になる安定板もあったな...

振り向けば、今は懐かし、秋の空
0356nobodyさん2013/03/11(月) 17:47:40.36ID:W/IPgsU1
サーバサイドで出力した "test" という文字列がJavaScriptのsuccessブロックにて
返って来るはずなのですが、なぜかそうならずにhtmlが返ってきています。
どこに問題があるのでしょうか?

【JavaScript】
var url_post = "http://hogehoge.com/hogecontroller/test";;
$.ajax({
type: 'POST',
url:url_post,
data: data,
success: function( data, textStatus, jqXHR )
{

// successs の場合の data にはなぜかHTMLがずらーりと書かれている。

}

【サーバ上のコード】
public function test()
{
$this->autoRender = false;

echo "test";
exit;


  }
0357nobodyさん2013/03/11(月) 17:53:46.15ID:???
そのずらーっと出てくる文字列は一体どこにあるふぁいるなんだろう?とか考えないの?
自分で解決する意志のないバカは諦めろよ
0358nobodyさん2013/03/11(月) 18:04:21.29ID:W/IPgsU1
>>357
出ている文字列はlayout です。

本来ajaxとして処理されなければいけないのに
cake2 のバグなのか
レンダリングされてしまっている様です。
0359nobodyさん2013/03/11(月) 18:24:25.00ID:???
は?
じゃあもう解決するだろよかったな
0360nobodyさん2013/03/11(月) 18:32:21.80ID:???
なにもかもバグとみなしちゃう人って
0361nobodyさん2013/03/11(月) 19:05:00.09ID:W/IPgsU1
>>359
取り敢えずしねよ
0362nobodyさん2013/03/11(月) 19:19:04.54ID:???
おーおーキレちゃいましたかぁ
0363nobodyさん2013/03/11(月) 19:26:51.17ID:???
あーこれはダメですよ。いけませんねえ
03643562013/03/11(月) 19:45:33.19ID:gBMHE97E
いかん。解決できない。

誰か教えてください。

datatype="text"
とか一通りやったけど
JavaScriptでアクセスするとなぜかHTMLが返って来てしまう
0365nobodyさん2013/03/11(月) 19:55:30.31ID:???
>>361をとりあえず謝ろうか。
そうすれば答えてやらんでもない。
というか自分でもう答え出てるはずなのになぜしない。
0366nobodyさん2013/03/11(月) 20:15:32.15ID:???
まぁ、初心者なんだからそうムキになるなって

>>364
いいのを教えてあげるよ
まず、君のブラウザのURLに http://google.co.jp/ って入力してみて。

OK?

すると小さなテキストボックスが見えると思う。

そこに、例えばそうだな・・・ "CakePHP ajax" とか入れてみて。

OK?

じゃぁ、隣にある虫眼鏡のマークの着いた青いボタンがあると思う。
それを押してみて。

どう?
いくつかリンクが出てきた?

そしたらそれを上から順に開いて読んでいってみて。

僕からのアドバイスはここまでかな。
じゃぁ、検討を祈るよ。
03673562013/03/11(月) 20:49:39.25ID:gBMHE97E
自己解決しましたwww
このスレのバカどもに質問しなくても良かったwwwwwwwwwwwww
0368nobodyさん2013/03/11(月) 20:53:24.32ID:???
>>367
時間かかったねー
0369nobodyさん2013/03/11(月) 21:01:42.52ID:???
よかったねー
0370nobodyさん2013/03/11(月) 22:13:15.35ID:???
ajaxもできないクズプログラマにバカ呼ばわりされる日が来るとは
0371nobodyさん2013/03/11(月) 22:44:11.64ID:???
クズくそわろたwww
二度とくんなw
0372nobodyさん2013/03/11(月) 22:47:48.37ID:gBMHE97E
        /⌒ヽ⌒ヽ
               Y
            八  ヽ
     (   __//. ヽ,, ,)
      丶1    八.  !/
       ζ,    八.  j
        i    丿 、 j
        |     八   |
        | !    i 、 |
       | i し " i   '|
      |ノ (   i    i|
      ( '~ヽ   !  ‖
        │     i   ‖
      |      !   ||
      |    │    |
      |       |    | |
     |       |   | |
     |        !    | |


    てめぇえらドアホは、これでも咥えてろ
0373nobodyさん2013/03/11(月) 23:15:24.16ID:???
あら、ずいぶん細いのね
0374nobodyさん2013/03/12(火) 02:53:11.65ID:???
>>367
>>366 に解決してもらったんだからお礼くらい言ったらどうかね
0375nobodyさん2013/03/14(木) 11:10:44.04ID:???
cake2.xの辞典でるね
助かるわ
0376nobodyさん2013/03/14(木) 12:19:21.66ID:???
やっと出るのか。助かるな
0377nobodyさん2013/03/14(木) 12:52:40.88ID:???
Cake1から2で結構変わってるけど書き方変えただけとか意味のない変更ばかりだなあ
正直気紛れでいろいろ変えられても困る
0378nobodyさん2013/03/14(木) 13:29:34.39ID:???
>>377
意味のない変更ってどれ?
長期的には振り返ってみて無駄な変更だったってのはあるかも知れないけど、
その時点では少なくとも意味もなく変更したものってないんじゃないの?
あったら教えてほしいわ。
ほとんどの変更の理由はちゃんと change log に書いてる。

「意味のない変更」っていうより、
「意味の分からない変更」なんだろ?
0379nobodyさん2013/03/14(木) 13:32:44.74ID:???
意味のない変更w
あーバカはさわるなよ
0380nobodyさん2013/03/14(木) 14:56:36.32ID:???
じゃあファイル名がキャメルケースに変わったのはなんで?
どっちでもいいと思うんだけど、何故わざわざ変えた?
0381nobodyさん2013/03/14(木) 16:05:31.02ID:???
全体を統一させるため
0382nobodyさん2013/03/14(木) 17:46:35.24ID:???
キャメルケースになったのはクラス名とファイル名を同じにすることにしたからじゃないの?
お陰でファイル名見ただけで、クラスが定義されてるかどうかが分かるようになった。

唯一の例外が exceptions.php (1ファイルで複数定義)だが。
0383nobodyさん2013/03/14(木) 19:01:42.10ID:UkYLgnwt
cakePHP2 で画像認証とか入れたいんだけど
オススメはある?

そもそもcakePHPのmvcモデルでそもそも出来るんだろうか?
0384nobodyさん2013/03/14(木) 19:04:50.20ID:???
そもそも自作したら出来るよ
0385nobodyさん2013/03/14(木) 21:54:40.14ID:???
>>383
作ってみると意外に簡単
0386nobodyさん2013/03/14(木) 23:12:28.06ID:UkYLgnwt
>>385
参考サイトを教えて下さい。
0387nobodyさん2013/03/14(木) 23:53:30.90ID:???
>>386
サイトは忘れたけど、GDライブラリを使って、四角の中に文字を大きさと傾きと位置をランダムで変えて重ねるだけ。
あとは重ねた文字をセションで録っとけば付き合わせできるでしょ?
0388nobodyさん2013/03/15(金) 00:00:00.26ID:???
そんな面倒なことしなくても
アクセスカウンターみたいに適当な数字の画像作って、
画像をランダムに取得して表示すればいいんだよ。
ランダム値のクッキーを持っておけば、画像認証に使える。
0389nobodyさん2013/03/15(金) 00:14:38.89ID:???
お前らは一体何を言ってるんだ?
バカは無理して答えちゃダメだぞ

Kcaptcha cakephp
で検索
0390nobodyさん2013/03/15(金) 14:10:50.98ID:???
Cake2.2を使っているが、テーブルのcreated,modifiedは作成時に自動で入れてくれるみたいだが
saveやupdate時に、modifiedが自動で更新されないようだけど仕様?
そのくらい自動でやってくれても良さそうなもんだが、どこかに設定などあるのだろうか
0391nobodyさん2013/03/15(金) 15:41:02.58ID:???
???
0392nobodyさん2013/03/15(金) 15:41:14.04ID:???
俺はupdatedにしてるけど、自動で更新されるよ
0393こず2013/03/15(金) 17:55:41.38ID:???
初心者なのですが、課題でcakephpを使ってCMSを作るのですが、開発環境構築で
どうしてもDB(PostgreSQL)に接続できずに「Cake is NOT able to connect to the database.
Datasource class PostgreSQL could not be found.」と出てしまいます(泣)

やった事としては
C:\xampp\htdocs\cakephp\app\Configの中のdatabase.php.defaultをリネームしてdatabase.phpに変更。
開いて
class DATABASE_CONFIG {

public $default = array(
'datasource' => 'Database/PostgreSQL',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'postgres',
'password' => 'postgres',
'database' => 'cakephp',
'schema' => 'public',
'prefix' => '',
'encoding' => 'utf8',
);に変更を掛けてみた。
で、他にちゃんとdllがあるかどうかphpディレクトリ内を見てもあるし、壊れてる事もないかと思われる。
DB側ではコマンド使ってcakephpってdbを作成し、tableを作成しrolを作り権限を与えた。
CREATE ROLE cakephp2 WITH LOGIN PASSWORD 'cakephp_pass'
GRANT SELECT, UPDATE, INSERT ON cakephp1 TO cakephp2;
これ以上どうしたらいいか分からないです…(泣)

初心者すぎて何がおかしいのか、何が正しいのか分からず悪戦苦闘を通り越して
悶絶してます。。。
0394nobodyさん2013/03/15(金) 17:59:05.60ID:???
>>390
更新させる時のデータから削除しとかないとだめなのだけど、そこは大丈夫?

そういう仕様にしないと、明示的にタイムスタンプを保存する手段がなくなっちゃうからな
0395nobodyさん2013/03/15(金) 17:59:26.60ID:???
そのまま半年悶絶し続けてください。
半年後もう一度書き込んでください。
0396nobodyさん2013/03/15(金) 18:02:08.52ID:???
>>393
ん?
データベースの設定と設定ファイルとが異なっているのはなぜ?
0397nobodyさん2013/03/15(金) 18:14:35.03ID:ErWJB8E6
>>393
あなたのPCの中身まではわからないのであくまで可能性だけど
�@ポートが違う�Aログイン情報が違う�Bデータベースがそもそも作られてない などが考えられる

基本的にログイン情報が確かならばbakeコマンドで設定ファイル作れば確実だから、bakeでやってみそ

あとなんで権限を作ってるのにそれを設定ファイルで無視してるの?
まあ「postgres」は何もいじってなければスーパーユーザーになってるからそこは問題じゃないけど
ちなみにデータベースさえあればテーブルがなくても接続はしてくれる
0398nobodyさん2013/03/15(金) 18:32:22.34ID:???
若干ずれた話だけど、
CakePHPは海外製で、海外ではPostgresは下火。
なので、バグの踏み抜かれ率はMySQLの方がいいと思っている。
使ってる人に聞いたら、CakePHP2になって最近はPostgres対応も良くなってるらしいけどね。
0399nobodyさん2013/03/15(金) 18:42:25.60ID:???
今は日本でもどんどんMySQLに移行してる
てか速度も機能もどちらも進化してほぼどっこいになってるから、ほぼデファクトスタンダードになりつつあるMySQLを使わない理由があんまりない
0400nobodyさん2013/03/15(金) 18:51:57.40ID:???
MongoDB は使いたいんだけど使う機会がないなぁ
0401nobodyさん2013/03/17(日) 15:30:21.57ID:52JIKnwB
お知らせ

市原警察署の生活安全課の帰化人創価警官の指導の元、
入学式から2週間ほど、在日の創価学会員を主体とした自称防犯パトロールが、
2週間ほど行われることになりました

生活安全課の指導であることと、パトロールであることは、
絶対に公言してはいけないとの指導も、帰化人創価警官より出ています

期間中は2人組の在日の創価学会員が、頻繁に創価批判者の自宅周辺を、
うろつき回ると思われます
日本人の方は、充分に注意してください
0402nobodyさん2013/03/18(月) 11:54:42.05ID:3ophCmi8
>>394
えっと…削除させなきゃいけないって…どういう意味でしょうか?ホント初心者でごめんなさい(泣)
>>396
本当だっ!!直してみますっ!!
>>397
権限作ったのはいいものの、どうやってPHPの方に書いていいか分からずスルーしちゃいました…;;
>基本的にログイン情報が確かならばbakeコマンドで設定ファイル作れば確実だから、bakeでやってみそ
bakeコマンドか分からないけど調べてやってみますっ!!
0403nobodyさん2013/03/18(月) 12:23:45.66ID:???
>>402
CakePHPのORMがUPDATE ステートメントを発行する際に、
次の2つのことを調べて、それを満たした場合に
親切丁寧に現時刻をセットしてくれているのだよ。

2つのこととは、
1. テーブルのスキーマにタイムスタンプフィールドがあるかどうか → なければ処理しない
2. 保存しようとしているデータにそのフィールドの値がセットされていないかどうか → 「セットされていれば」処理しない

で、よくありがちなのが、Modelから単純に取得したままのレコードにタイムスタンプフィールドが含まれていて、
それをそのままにして更新しようとして "update" や "modified" が更新されないということ。
0404nobodyさん2013/03/18(月) 15:46:27.55ID:3ophCmi8
>>403
ありがとうございますっ!!でも、これは実際の処理に入ってからですよね??
アレ。。。違うかなぁ。。。
えっと開発環境を整える段階で接続
「Cake is NOT able to connect to the database.
Datasource class PostgreSQL could not be found.」
と出てしまうのでどうしたらいいのかと。。。はぅ(≡ε≡;A)
0405nobodyさん2013/03/18(月) 16:09:20.83ID:???
うっせえぼけ
0406nobodyさん2013/03/18(月) 16:20:06.38ID:???
>>404
お前、回答を全然咀嚼できてないwww

まずこれまでお前にレスしてくれた数と同じ回数だけ
公式のブログチュートリアルとACLチュートリアルをやれ。

最後は参考資料を一切見ずにブログチュートリアルと
同じ結果を一箇所も間違わずに実現してみろ。

それまで質問するな。
0407nobodyさん2013/03/19(火) 02:38:14.33ID:???
誰か辞典買った?
0408nobodyさん2013/03/19(火) 11:48:24.50ID:???
今更すぎて買わない
0409nobodyさん2013/03/19(火) 18:17:38.42ID:???
ですかねぇ〜

あれば便利なんだけど、ドキュメントとソースコードを
循環させて読む癖がいつの間にかついたんで、
どうしても必要というわけではない。

微妙なんだよな。
0410nobodyさん2013/03/19(火) 19:14:22.35ID:???
なんかオリジナル要素があったら良かったのにね。
実用的な説明がもう少しあったら、ググるより楽なのに。
0411nobodyさん2013/03/19(火) 20:37:32.56ID:???
辞典買った
1.xのも迷って買った結果お世話になりまくったので
0412nobodyさん2013/03/19(火) 22:23:20.75ID:???
どんな感じですか?
■ このスレッドは過去ログ倉庫に格納されています