【PHP】フレームワーク CakePHP 13ホール目【v2.0】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2011/11/09(水) 01:05:10.60ID:???CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
前スレ
【PHP】フレームワーク CakePHP 12ホール目【笑】
http://hibari.2ch.net/test/read.cgi/php/1309505626/
0898nobodyさん
2012/04/10(火) 13:53:53.12ID:???マイグレーションガイドぐらいは読もうぜ
http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html#request-handling-get-url-and-htaccess-files
0899nobodyさん
2012/04/10(火) 15:35:48.29ID:???0900nobodyさん
2012/04/10(火) 15:45:33.60ID:???インプットの値が自動で上書きされるのに、
GETフォームだと、空のままなんですが、
自分でマージするしかないのでしょうか・・・?
$this->request->data = $this->request->query;
とやってもダメでした。
0901nobodyさん
2012/04/10(火) 16:19:05.60ID:???layoutのcontent_for_layout以外のところをnocacheでくくってみたら?
>>900
getでもフォームの内容は引き継がれるはずだよ
遷移先のフォームのIDとかnameが変わっちゃってない?
0903864
2012/04/10(火) 23:50:19.65ID:???http://d.hatena.ne.jp/kanonji/20090819/1250655003
↑のとおりdll書き換えてCLI落ちなくなった
0904nobodyさん
2012/04/11(水) 10:44:38.27ID:???cakePHPのヘルパーを使って画面遷移させようと
しているのですが、出力されたリンクに関係ない文字列(ここでは、 /app )
が勝手に付加されてしまい困っています。
<?php echo $this->Html->link('JUMP', '/jump', array('class' => 'button', 'target' => '_self')); ?>
ここでは、本当は (B)の形でhtmlを出力したいです。どうすれば良いでしょうか?
(A) <a href="/app/jump" class="button" target="_self">jump</a>
(B) <a href="/jump" class="button" target="_self">jump</a>
0905nobodyさん
2012/04/11(水) 16:48:45.18ID:???会員のパスワードは暗号化されるので、通常のログインでは無理です。
こういう場合って、単にAuthのセッション情報を付与して
会員ページにリダイレクトするだけでしょうか?
0906nobodyさん
2012/04/11(水) 18:45:08.55ID:???嫌な仕様だなw
会員ページのメンテナンスとかしたいなら管理者権限でそう言うのできるアクションを
作ればいいのでは
0908864
2012/04/11(水) 22:08:14.47ID:???cakeでの/はcake_appのルートになるからその動作が適切だよ
普通にHTMLで
<a href="/jump" class="button" target="_self">jump</a>
って書けばいいじゃん。
もしかしたら
'/../jump'で解釈してくれたりしないかな?知らないけど
0909nobodyさん
2012/04/11(水) 22:08:55.22ID:???0910nobodyさん
2012/04/11(水) 22:12:31.92ID:???吐き出されるのはこうなるけど
<a href="/app/../jump" class="button" target="_self">jump</a>
0911nobodyさん
2012/04/11(水) 22:50:15.55ID:Ko+Ap9VUroutingのprefixかなんかで特殊な設定してない?
appという文字列がどこからやってきたのか検討もつかない状態なの?
>>905
Authでログインしようとしても無理だと思うので>>906でいいんじゃない
0912nobodyさん
2012/04/11(水) 23:12:38.64ID:???cakePHPをせっかく使っているので直接書きはしたくないです。
>>911
基本的にcakePHPのベースコードは何もいじっていないのですが
FWにデバッグコードを入れておっかけてみます。
>>907
お前の投稿自体マルチだろ。しね。
0913nobodyさん
2012/04/11(水) 23:16:31.45ID:???あれ?cakeルートがサーバーのウェブルートで無い場合に、
Html->link()つかってサーバールートへリンクしたいってことじゃないの?
つまり、サーバールートの下にappってディレクトリがあってそこがcakeのルートになってるんじゃないの?
0914nobodyさん
2012/04/12(木) 12:04:20.30ID:???どこに定義しますか?
パスを教えてください。
Utility的な自己ライブラリを定義したいと考えています。
0915nobodyさん
2012/04/12(木) 12:18:39.89ID:???外部にしてincludeか
0916905
2012/04/12(木) 13:56:49.96ID:???私も管理画面に会員情報を編集できるページを作っていたのですが、
管理画面から対象の会員としてログインし、
会員情報の修正をしている市販CMSを結構見るんです。
たぶん、同じような箇所を管理画面用・会員用と分けて作るのは
手間がかかるからログインし直すという事で対処していると思うのですが、
あまり良いやり方ではないみたいですね。
0917nobodyさん
2012/04/12(木) 18:05:37.36ID:???0918nobodyさん
2012/04/13(金) 01:19:58.45ID:???vendorにライブラリとして突っ込む
>>916
ユーザーが実行できる範囲の行動を管理者が行うという前提であれば
手抜きの方法としてナシではないのかもしれないけど、スマートでないのは確か
というかユーザーが修正できるんならユーザーに修正させるべきじゃね?
管理者がユーザーの設定代行するって言うのはかなりの最終手段のような気がする
0919nobodyさん
2012/04/13(金) 14:04:43.06ID:???なぜかIEでだけ、動きません。
http://hostname.jp/controller/action/全角の検索ワード
という感じのアクションなのですが、Chromeでは問題なく動いているのですが、
IE系のブラウザではまったく動いてくれません。検索ワードが半角文字だけですと、IEでも動いています。
そもそもCakeのメソッド引数に上記の方法で全角文字列を渡してもいいものなのでしょうか?
なにか別にいい策があればご教示ください。
0920nobodyさん
2012/04/13(金) 14:52:39.24ID:???古臭い用語だな
0922nobodyさん
2012/04/14(土) 00:10:19.08ID:???Cakeとか関係ない。
UTF-8で書かれたページでPOSTしたら
サーバーに投げられる文字コード何か?
EUC-JPで書かれたページでPOSTしたら
サーバーに投げられる文字コード何か?
この2つの例でサーバーに投げられ文字コードは何で決まるのか?
http://hostname.jp/controller/action/全角の検索ワード
の「全角の検索ワード 」の部分の文字コードはどうやって決めるのが正しいか
考えてみれば良い。
0923nobodyさん
2012/04/14(土) 09:35:05.93ID:???0924nobodyさん
2012/04/14(土) 10:00:41.58ID:???0925nobodyさん
2012/04/14(土) 10:52:00.00ID:???文字コードは何だよ。言ってみろ
0926nobodyさん
2012/04/14(土) 12:26:15.35ID:???ファンクションをコールしようとしているのですが
下記の様なエラーが出てしまいます。
どこに間違いがあるのでしょうか?
[model]
class Test extends AppModel
{
var $name = 'Test';
function Testxxx(){echo "Test!";}
}
[controller]
var $uses = array('Test');
$this->Test->Testxxx();
[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 'Testxxx' at line 1
0927nobodyさん
2012/04/14(土) 13:43:48.92ID:???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 'Testxxx' at line 1
0928nobodyさん
2012/04/14(土) 13:50:12.49ID:???0929nobodyさん
2012/04/14(土) 14:11:27.02ID:???>>928お前はミサイルで頭を破壊した方がいいよ。どうせまともなルックスしていない下種野郎だろうしな。
0930nobodyさん
2012/04/14(土) 15:09:22.75ID:???0931nobodyさん
2012/04/14(土) 18:06:38.12ID:???例)
denyController.php
へのアクセスを禁止するには一般的にどうしますか?
.htaccess or cakePHPでなにがしかの設定が可能?
0932nobodyさん
2012/04/14(土) 18:42:11.68ID:???下記コードを実行すると、全レコードが削除されてしまいます><;
$deleteCondition = array("hoge_id" => 3333);
$this->Hoge->deleteAll( $deleteCondition );
0934nobodyさん
2012/04/14(土) 19:34:52.76ID:V2giXwsG俺ならコントローラー全てのアクションにprefixつけてprefixルーティング&アクセス制御って感じかな
0935nobodyさん
2012/04/14(土) 19:38:18.38ID:???自己解決しました。
英語のドキュメントを見たところ
cake2.1.1 になってから呼出し方が微妙に変わっていました。
0937nobodyさん
2012/04/14(土) 20:25:02.13ID:???実際には delete は変わってませんでした。
findについては、
findAll → find('all')
といった感じです。
しかし、なぜ同じコードで>>932が今度は正常に削除出来たか不明。
0938nobodyさん
2012/04/14(土) 20:33:32.07ID:???viewsのパスを任意に追加するにはどうすればいいのでしょうか?
ソース見たらApp::path('views')でパスは取れるみたいだけど追加の関数がない。
0939nobodyさん
2012/04/15(日) 02:11:36.29ID:???0940nobodyさん
2012/04/15(日) 08:46:03.26ID:???0941nobodyさん
2012/04/15(日) 19:57:59.30ID:???0942nobodyさん
2012/04/15(日) 20:19:36.67ID:???http://hogehoge.com?age=17
じゃなくて
http://hogehoge.com/age/17
として処理を行うにはどうしたら良いでしょうか?
0944nobodyさん
2012/04/16(月) 13:39:36.79ID:???AController / Hage()
や
BController / Chabin()
を呼び出すにはどうすれば良いでしょうか?
0947nobodyさん
2012/04/16(月) 19:03:36.34ID:???正常にキック出来る事の確認をしているのですがうまくいきません。
1.x系と2.xとでは記述方法が異なっている事を考慮に入れ
下記コードを記述しているのですがなぜかシェルクラスが認識されないです。
【作成したシェルクラス】
Console/Command/TestHelloShell.php
<?php
class TestHelloShell extends AppShell
{
public function main()
{
$this->log('[Shell]main() が実行されました。', LOG_DEBUG);
}
}
?>
【コマンドライン】
%/usr/local/bin/php /home/{my_account}/cake/lib/Cake/Console/cake.php test_hello -app /home/{my_account}/www/{my_directory}/app
Error: Shell class TestHelloShell could not be found.
#0 /home/{my_account}/cake/lib/Cake/Console/ShellDispatcher.php(167): ShellDispatcher->_getShell('test_hello')
#1 /home/{my_account}/cake/lib/Cake/Console/ShellDispatcher.php(69): ShellDispatcher->dispatch()
#2 /home/{my_account}/cake/lib/Cake/Console/cake.php(41): ShellDispatcher::run(Array)
#3 {main}
0949nobodyさん
2012/04/19(木) 01:38:53.63ID:???0950nobodyさん
2012/04/19(木) 16:26:48.17ID:GZ2gdGu2お勧めの方法はありますか?
0951nobodyさん
2012/04/19(木) 17:13:57.30ID:???0952nobodyさん
2012/04/19(木) 17:14:15.72ID:???0953nobodyさん
2012/04/19(木) 17:29:14.82ID:???設定ファイルに出力したいのですが、良い方法は無いでしょうか?
考えたのは、モデルキャッシュして設定ファイルが必要な時に
そのキャッシュを読み込むパターンです。
0954nobodyさん
2012/04/19(木) 19:06:23.24ID:???bootstrap.phpでDBから設定データを読み込んでConfigure::Storeでキャッシュ。
…でもいいんだけど、
Cake2からは ConfigReaderInterfaceっつうのがついたからね。
Readerを書けばモデルから直接Configureに読み込むができるようになった。
Configureファイルに書いた時と同じようにConfigure::read()でどこでも読めるから便利よ
0955nobodyさん
2012/04/19(木) 21:31:47.54ID:???みなさんどんな感じでやってますか?
0956nobodyさん
2012/04/19(木) 22:16:25.42ID:???0957nobodyさん
2012/04/19(木) 22:18:18.29ID:???0961nobodyさん
2012/04/20(金) 04:26:48.64ID:???0963nobodyさん
2012/04/20(金) 12:22:03.72ID:PezrE8Wtドリュルリュルウリュリィブブブブブブッッ!!!!あへあへうんこまん!!!ぶりっちょ!!!
ケツの穴からドババババババババッバwwwwwwwwwwwwWWWW
wwwwwwwwwwww
WWWwwwwwwwwwww??? ? ? ? ? ? ? ????? ????????wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
なお、まにあわんもよう
0964nobodyさん
2012/04/20(金) 12:25:44.92ID:???0966nobodyさん
2012/04/20(金) 13:43:18.88ID:???1.3系使ってるので、Configure::storeを使うパターンで行きます。
これってfindした配列を保存して、loadで読み込んでreadで参照
出来るから便利ですよね。参考になりました。ありがとうございます。
0967nobodyさん
2012/04/20(金) 23:58:00.96ID:???バカを承知でなぜ惚れた〜
0968nobodyさん
2012/04/21(土) 11:00:21.04ID:???http://example.com/aboutとかhttp://example.com/sitemap
というようにアクション名だけ指定したい場合、
ルーティングでアクション名を追加する必要がありますよね?
http://example.com/のコントローラがhomeであり、
/views/home/内にアクション用のファイルがあれば
routes.phpに記載しなくてもアクション名だけで
アクセスできないかと思い、質問しました。
0969nobodyさん
2012/04/21(土) 14:00:03.01ID:???一行書くことになるけど
Router::connect('/:action', array('controller' => 'home'));
とかでいけるんじゃない
0970nobodyさん
2012/04/21(土) 14:43:21.86ID:???この方法だと、コントローラにアクションを追加しないとアクセスできません。
pagesを使うように、アクション名を書かずにビューファイルを追加するだけで
アクセスできるようにしたいのですが・・・
0971nobodyさん
2012/04/21(土) 17:21:29.95ID:???Eclipseでレンタルサーバ上に展開したPHPファイルを
ローカルのEclipseにてデバッグ実行って出来ますか?
※ブレークポイントが正常に止まるか。
0972nobodyさん
2012/04/21(土) 22:21:07.57ID:???アクション追加せずにビューだけ表示したいのならpagesでいいんじゃないの?
アクションが無いのだから特定のコントローラーを介する理由も無いし
Router::connect('/*', array('controller' => 'pages', 'action' => 'display'));
0973nobodyさん
2012/04/22(日) 10:29:18.10ID:L2FF/0Tgリモートデバッグは、サーバー側のデバッグ用ポートにコネクトしてする感じ
そのレンタルサーバとやらに聞いてみて、デバッグ用ポートが開いていないのなら無理
まぁ、普通のレンタルサーバでデバッグポート開いている事はたぶん無いんじゃないかな
0974nobodyさん
2012/04/22(日) 11:01:45.48ID:???ありがとうございます。
鯖屋に確認してみます。
ローカル環境に開発環境を作ると重たいので
全てレンタルサーバ上でやりたいなぁー、なんて考えてました。
0975nobodyさん
2012/04/22(日) 11:32:49.43ID:L2FF/0Tg重いのはたぶんEclipseだよ
他のエディタとか使う事あるのなら、XAMPP+エディタで試してみるといい
ただ、GUIのデバッグ環境は無いと思うが。
0976nobodyさん
2012/04/22(日) 15:41:01.67ID:???適当なURLを入力すると次の様にサイトがcakePHPを使用している事がわかる様な
エラーメッセージが出てしまいます。
これを消す方法とかってありますか?
CakePHP: the rapid development php framework
0977nobodyさん
2012/04/22(日) 15:57:27.32ID:???0978nobodyさん
2012/04/22(日) 18:19:37.02ID:???default.ctpとかテンプレートのどっかに書かれてるんだろ
どこから出力されてるか突き止めてそれを消せ
0979nobodyさん
2012/04/22(日) 19:19:39.84ID:???0981nobodyさん
2012/04/22(日) 20:33:38.25ID:???<li><input type="checkbox" name="data[Post][]"></li>
<li><input type="checkbox" name="data[Post][]"></li>
<li><input type="checkbox" name="data[Post][]"></li>
みたいな出力にしたい時、フォームヘルパーを使って出来ますか?
0982nobodyさん
2012/04/23(月) 16:08:34.29ID:3JcMmxsm次の様に解釈させ、処理を実現をしたいのですがどうすれば良いでしょうか?
@アクセスされる際のURL
http://unnko.com/prin/food/rice/333
@Controllerに定義した内容
class PrinController extends AppController
{
function food($menu,$id)
{
echo $menu."<br>"; // ← rice を表示したい。
echo $id."<br>; // ← 333 を表示したい。
}
}
0983nobodyさん
2012/04/23(月) 16:13:23.70ID:???0984nobodyさん
2012/04/23(月) 17:14:29.71ID:???頭の中にウンコがぎっしり詰まってるんだろ
0985nobodyさん
2012/04/23(月) 20:52:22.44ID:???0988nobodyさん
2012/04/24(火) 11:12:03.63ID:???DB登録時に、クッキーからログインユーザーの情報吸い上げて登録しにいくフローって多くない?
モデル内でApp::usesでクッキーコンポーネント呼ぶのは邪道?
0989nobodyさん
2012/04/24(火) 11:24:40.31ID:???0990nobodyさん
2012/04/24(火) 11:28:43.67ID:???0991nobodyさん
2012/04/24(火) 11:58:40.78ID:???0994981
2012/04/24(火) 14:05:37.49ID:???チェックした項目がチェックされていません。どうすればいいのでしょうか?
<li><?php echo $form->checkbox('Post.xxx', array('value' => 1)); ?></li>
<li><?php echo $form->checkbox('Post.xxx', array('value' => 2)); ?></li>
<li><?php echo $form->checkbox('Post.xxx', array('value' => 3)); ?></li>
0995nobodyさん
2012/04/24(火) 15:11:46.26ID:???コントローラーからモデル名に変えようにも
$this->Auth->sessionKey = 'Auth.Hoge';
じゃだめで
AuthComponent::$sessionKey = 'Auth.Hoge';
って市内とダメなんだけどそもそもいじっちゃマズイのかな?
レス数が950を超えています。1000を超えると書き込みができなくなります。