【PHP】フレームワーク CakePHP 15ホール目【v2.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/12/04(火) 13:06:36.87ID:ExCLhBiPCakePHPから派生した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/
0263nobodyさん
2013/02/03(日) 22:03:32.85ID:/AHKrDea思ったより難しくて困難なことなんですね
ありがとうございます
0264nobodyさん
2013/02/03(日) 22:49:27.59ID:???この「初心者」とは少なくともPHPの基礎を済ましてからでお願いします。
0265nobodyさん
2013/02/04(月) 01:29:23.68ID:???まぁ初心者煽るだけだとなんにもならんからマジレスしとくと、
PHPではクラス名にハイフンが使えない。
CakePHPでは、テーブル名からモデルやコントローラーのクラス名が決まり、
それがURLにもなるという仕組みがあって、
example.com/conttollername/action/ という形で出来る。
これを自分でコードを書かなくてもCakePHPがやってくれるので、
フレームワークを使って楽をする部分。
ただし、URLをデフォルトの形から変えたいという要望は当然あるので、
そのためにConfig/routes.phpにルーティングを書く機能があるんだ。
URLにハイフンを使いたいという場合も、CakePHPではこれに当たる。
俺はURLにハイフンなんてむしろ入れたくない方だから良く分からんけど、
ルーティングを書くってのはそんな難しい事じゃないぞ。
0266nobodyさん
2013/02/04(月) 08:02:31.65ID:???0267nobodyさん
2013/02/04(月) 12:15:28.40ID:???PHPの基礎すらしらない初心者以下が使ってるからなんだな。
0268nobodyさん
2013/02/04(月) 12:17:50.34ID:???0269nobodyさん
2013/02/04(月) 17:35:50.15ID:zdC3MV9aFWは使った方がやっぱりいいですかね?
0270nobodyさん
2013/02/04(月) 17:37:55.34ID:???GKは不要でしょう。
なに求めてるかによるだろバーカ
0271nobodyさん
2013/02/04(月) 18:30:04.68ID:zdC3MV9a必要な機能のみ入ってる
0272nobodyさん
2013/02/04(月) 18:36:40.10ID:???0273256
2013/02/04(月) 20:58:13.66ID:Qd6LJB5gRouter::connectを使ったらできました
ありがとうございました
0274nobodyさん
2013/02/04(月) 22:35:24.25ID:???cakephp使わなかったらずっと気づかなかったかも知れないわ
0275nobodyさん
2013/02/05(火) 13:24:30.22ID:???$this->RequestHandler->setContent( 'json' );
$this->RequestHandler->respondAs( 'application/json; charset=UTF-8' );
$this->autoRender = false;
echo json_encode( $inOutput );
このようなコードで出力しています。
出力結果のレスポンスヘッダーのContent-Typeを見ていると
出力バイト数が少ないうちは[application/json; charset=UTF-8]になっているのですが
大きくなると[text/html]になってしまいます。
respondAsが効かなくなる条件のようなものはあるのでしょうか
0276nobodyさん
2013/02/05(火) 18:05:43.33ID:???既にUserというクラス作ってます…
0277nobodyさん
2013/02/05(火) 18:07:18.96ID:???http://tinyurl. com/9w97424
0278nobodyさん
2013/02/05(火) 18:08:39.14ID:???0279nobodyさん
2013/02/06(水) 14:01:53.99ID:???2が出てだいぶ時間がたってると思うのですが・・・
0280nobodyさん
2013/02/06(水) 14:23:12.45ID:mYFhq6tH順次増やしていく設計(システム)には、cakePHPはやっぱり使えないでしょうか?
T_100
T_101
T_102
T_***
構造
id / name
※膨大なレコード数が想定されれう為
同一構造のテーブルをを連番に順次作成していく
0282nobodyさん
2013/02/06(水) 14:40:44.22ID:mYFhq6tH>コントローラやモデルで対象のテーブルを切り替えられるから
どういう風に切り替えるのでしょうか?
基本的には、cakePHPをはじめとしたMVCフレームワークでは
テーブル名に対応したモデルクラス(***.php)を1つ作成しないと
いう認識でいたのですが。
0284nobodyさん
2013/02/06(水) 14:53:50.43ID:???>テーブル名に対応したモデルクラス(***.php)を1つ作成しないと
>いう認識でいたのですが。
ぜんぜん違う。
0285nobodyさん
2013/02/06(水) 15:03:38.35ID:mYFhq6tHパーテション?どいう事でしょうか?
0286nobodyさん
2013/02/06(水) 16:21:42.35ID:???一つのテーブルでレコードが膨大になるのが問題なんでしょ?
しかもそのテーブルのスキーマがかなり単純なものでしょ。
それなら複数のテーブルを作成するよりも、一つのテーブルでパーティショニングしたほうがいいよ。
データベース パーテイション
で調べてみて
0287nobodyさん
2013/02/06(水) 16:27:56.17ID:???一呼吸置いて5分でもいいから出てきた単語検索してみろ
しね
0289nobodyさん
2013/02/06(水) 16:56:50.65ID:???0290nobodyさん
2013/02/06(水) 17:02:14.00ID:DvysHyJ8変動IPも知らぬバカ
>>289 おまえ
0291nobodyさん
2013/02/06(水) 17:21:32.61ID:???0292nobodyさん
2013/02/06(水) 17:51:41.67ID:???0293nobodyさん
2013/02/06(水) 18:15:20.06ID:DvysHyJ80294nobodyさん
2013/02/06(水) 20:13:41.57ID:???PHPのソースコードの品質を評価するスレ
http://toro.2ch.net/test/read.cgi/tech/1360128502/
0295nobodyさん
2013/02/06(水) 20:50:50.16ID:???0296nobodyさん
2013/02/06(水) 21:31:39.70ID:DvysHyJ8# 基本は SC_Initial.php で設定するが、ini_setで反映されないものはここで設定する
php_value mbstring.language Japanese
php_flag mbstring.enco
ding_translation off
php_value output_handler NULL
php_flag magic_quotes_gpc off
php_flag session.auto_start 0
こーいう記述があるけど、.htaccessの中にphpとか記述してもええのぇ?
0297nobodyさん
2013/02/06(水) 21:34:14.59ID:???0298nobodyさん
2013/02/19(火) 10:01:18.06ID:???http://torhamzedd.halteria.com/2012/01/cakephp20search-plugin22.html?m=1
↑のブログを参考にSearchプラグインの導入を試みたのですが
「SQLエラー validateSearch」が出てうまく行きません
Searchコンポーネントのcommonprocessまでは処理が通ってるらしいのですが
正直、何が悪いのかお手上げ状態です
上記のエラーの原因と解決策を教えていただけないでしょうか
0299nobodyさん
2013/02/19(火) 12:55:09.95ID:???もっと詳しく書かないと調べてあげる気に慣れないな
少なくともエラーの文言はまんまコピペしてくれないと
0300nobodyさん
2013/02/19(火) 14:00:15.60ID:???ごもっともでございます
出先なもんで詳細を確認できない&クドくならないようにはしょったので情報が足りませんでしたね
まだ出先ゆえ、詳細を確認できないのですが
後程、エラー全文をレスしますので
見ていただけると幸いです
0301nobodyさん
2013/02/19(火) 15:01:19.27ID:???0302nobodyさん
2013/02/19(火) 15:36:59.21ID:???サーチプラグインなんかで躓くなカス
0303nobodyさん
2013/02/19(火) 16:20:29.12ID:???>>298で張ったブログを参考に、users、profilesという2つのテーブルを作成し
userモデルにhasOneでprofileを持たせています
bootstrap.phpでSearchプラグインのロード設定を行い
モデルのUser.phpで
・Searchプラグインのビヘイビアをプロパティに追加
・検索対象フィルタ設定($filterArgs)
・検索対象フィールド設定($presetVars)
モデルのProfile.phpで
・Searchプラグインのビヘイビアをプロパティに追加
UsersController.phpで
・Searchプラグインのコンポーネントをプロパティに追加
・’User’、’Profile’モデルをプロパティに追加
・beforeFilter内で検索対象フィールド($presetVars)をUserモデルから読み込み
・beforeFilter内でページャ設定
と上記の状態でブラウザでアクセスしたところ以下のようなData base Errorが出ました
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'validateSearch' at line 1
webで調べても類似の症例が少なく(また解決方法が得られませんでした)煮詰まっています
長文で申し訳ないですが、助言を頂けないでしょうか
0304nobodyさん
2013/02/19(火) 16:34:36.05ID:???しねよバーカ
0305nobodyさん
2013/02/19(火) 16:57:59.43ID:???このエラーで言われている「validateSearch」とは
SearchableBehavior.phpに記述されているvalidateSearchメソッドではないのでしょうか?
「validateSearchを独自で定義しろ」なんてどこを参考にしても書いていなかったので
デフォルトでSearchableBehavior.php内のこのメソッドを呼びに行くものだと思っていたのですが・・・
0306nobodyさん
2013/02/19(火) 17:34:03.66ID:???$this->Model名->validateSearch()
呼べるかかくにん
0307nobodyさん
2013/02/19(火) 17:51:14.36ID:???UsersControllerのindex()の最初に$this->User->validateSearch('User');を追加し
直後にdebug('here')を出そうとしても出ず、直前だと出るのでビヘイビアの設定に失敗しているようです・・・
モデルファイルの中で
public $actsAs = array('Search.Searchable');
を記述するだけですよね・・・
0308nobodyさん
2013/02/19(火) 17:54:08.78ID:???filterArgs消して見てもエラーは出るものの君のと違うエラーだったんだけど一応確認
0309nobodyさん
2013/02/19(火) 17:56:46.55ID:???Userモデルファイル内で以下のように設定しています
public $filterArgs = array(
array('name' => 'id', 'type' => 'value', 'field' => 'User.id'),
array('name' => 'username', 'type' => 'like', 'field' => 'User.username'),
array('name' => 'account_name', 'type' => 'like', 'field' => 'Profile.account_name')
);
0310nobodyさん
2013/02/19(火) 19:14:24.02ID:???0311nobodyさん
2013/02/20(水) 04:42:40.97ID:???そのメソッド名がなんかSQLに含まれる動きしたと思うから、
>>306
>>310
でFAな気がするけど。
0312nobodyさん
2013/02/20(水) 11:46:05.19ID:FGS5pG2ucake bake で作ったCRUDメソッドの中で
editがありますが、これのコントローラとビューを見ていて、どうも納得がいきません。
まず、コントローラ側からヴューへ既存データをセットしている行がありません。
なぜこれで既存データがビューのテキストフィールドへ収まった状態の画面が作れるのでしょうか。
0314nobodyさん
2013/02/26(火) 18:44:02.07ID:zQtNhxoC[message.txt]
私の名前は、山田太郎です。
趣味はバレーです。
という様な外部ファイルにデータとかhtmlタグを設定しておき
include させたいと思いますがどこに配置するのが定石でしょうか?
0316nobodyさん
2013/02/26(火) 19:54:39.42ID:zQtNhxoCテンプレート的な意味合いです。
0317nobodyさん
2013/02/26(火) 20:09:15.83ID:???0318nobodyさん
2013/02/27(水) 12:51:17.39ID:k7COWgMjというテーブルを作成し、そのテーブルを参照する為に
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:???じゃないのか?
0320nobodyさん
2013/02/27(水) 13:35:29.97ID:???mediumを英和辞書で検索しろよ人間のクズ
useTableに記述しろよ出来損ない
0321nobodyさん
2013/02/27(水) 13:37:44.87ID:???CategoryMedium モデル
0322nobodyさん
2013/02/27(水) 14:08:41.58ID:???0323nobodyさん
2013/02/27(水) 19:23:11.08ID:1uFU2JpT何とか解決しました。ありがとうございます。
>>322
そんな便利な機能もあったのですね。
cakeの得体のしれない命名規則に翻弄される手間が省けそうです。
0324nobodyさん
2013/02/27(水) 19:26:37.46ID:1uFU2JpT中 を表わすmedium が media として
テーブル定義しないといけないか謎><;
0325nobodyさん
2013/02/27(水) 20:57:48.81ID:???0326nobodyさん
2013/02/28(木) 01:25:04.41ID:???cakephp2を用いてSNSのようなものを作りたいと考えていて
html CSSはできるのですがphpはほぼ初めてで初心者でも参考になるようなサイトなどありませんか?
お願いします
0327nobodyさん
2013/02/28(木) 02:42:12.10ID:???http://dotinstall.com/
どないです?
0328nobodyさん
2013/02/28(木) 12:06:41.54ID:???Php cake mysqlとかいろいろあって勉強なりそうです
0329nobodyさん
2013/02/28(木) 16:49:01.14ID:???どこか別のところに置いて欲しい
0330nobodyさん
2013/02/28(木) 17:00:11.96ID:???0331nobodyさん
2013/02/28(木) 17:00:49.22ID:???0332nobodyさん
2013/02/28(木) 21:29:21.10ID:???放っておけばいいじゃん
0333nobodyさん
2013/03/02(土) 01:43:36.79ID:???0334nobodyさん
2013/03/02(土) 03:08:56.61ID:???0336nobodyさん
2013/03/02(土) 15:54:54.28ID:???0337nobodyさん
2013/03/02(土) 17:40:51.03ID:???再生成すると、手を入れた部分が消えちゃうの、なんとかならないかなあ?
CakePHPで開発してると、テーブル構成の変更に腰が重たくなってしまう。
0339nobodyさん
2013/03/03(日) 11:50:44.09ID:???カスタマイズはその継承クラスを作成。
で、コントローラとビューはその継承クラスを参照する scaffold でやりくりする
っていうのもうまくいく場合がある。
0340nobodyさん
2013/03/03(日) 12:58:15.94ID:???ちょっとやってみる。
2回目のBakeでは、変更部分だけ差し替えてくれるのが理想なんがw
0342nobodyさん
2013/03/09(土) 23:49:39.09ID:0I4GbUTqこんなカスフレームワーク使うのやめろよ。
エンジニアとしての自分の格が下がるぞ?
てゆーかもう殆ど更新すらされてねーじゃん。
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:???0348346
2013/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返って来るはずなのですが、なぜかそうならずに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出ている文字列は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取り敢えずしねよ
0362nobodyさん
2013/03/11(月) 19:19:04.54ID:???■ このスレッドは過去ログ倉庫に格納されています