トップページ⇒php
1002コメント356KB

【PHP】フレームワーク CakePHP 17ホール目【v3α】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2014/08/02(土) 21:57:41.01ID:LI0DdohH
CakePHPは、Ruby on Railsの概念の多くを取り入れた、高速開発とPHPの機動性を兼ね備えたフレームワーク
質問するときはCakePHPのバージョンを書きましょう

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

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
cookbook(マニュアル)
[3.x] http://book.cakephp.org/3.0/
[2.x] http://book.cakephp.org/2.0/ja/
[1.3] http://book.cakephp.org/1.3/ja/
Twitter
https://twitter.com/cakephp
Facebook
https://www.facebook.com/CakePHP

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/


※前スレ
http://kanae.2ch.net/test/read.cgi/php/1393661004/
0101nobodyさん2014/11/15(土) 22:46:51.55ID:???
cakePHPのコントローラー名は

【複数形の英単語】Controller.php


という名前にするのがルールなのでしょうか?
必ず複数形にする必要があるのでしょうか?
0102nobodyさん2014/11/16(日) 02:51:08.67ID:???
>>101
ルールではない、規約だ

規約にのっとっていれば色々とフレームワークが自動でやってくれる部分が多いが、
規約から外れたとしてもなんとかする方法は(面倒臭い方法だが)用意されている

そういう面倒臭さが嫌なら大人しく規約に従っておくのが吉
0103nobodyさん2014/11/16(日) 11:29:55.49ID:88uIuRDd
>>102
了解です。
thank you
0104nobodyさん2014/11/16(日) 11:31:49.43ID:QtKRF6/y
因みにcakePHPでサイトが作成されている事を
(開発の出来る人を想定)閲覧者にばれない様に作り込む事は可能ですか?
幾らやってもばれるものでしょか?


セキュリティ的に開発に使用しているFWは隠蔽した方が良い気がしております。
0105nobodyさん2014/11/16(日) 11:40:56.93ID:???
>>104
種類がばれて問題になるようなFWは使わないほうがいい
0106nobodyさん2014/11/16(日) 13:04:20.46ID:rzwbZ1qv
>>105
一から開発するの凄く手間じゃないか
0107nobodyさん2014/11/16(日) 14:58:24.60ID:???
>>104
cakeだとわかるような部分が見つかったらその都度対応すればいい
0108nobodyさん2014/11/16(日) 15:00:53.86ID:???
cakeのセキュリティのなにが不満なのだろう?
そしてなにを満たせばセキュリティ的に合格なFWなのだろう?

セキュリティがーとかいう人間に限って知識が薄っぺらい。
0109nobodyさん2014/11/16(日) 15:33:17.44ID:I3T4ePm6
>>104

アセットディレクトリを /wp-contents/themes/*** にして、/wp-admin/ の振る舞いを偽装して
WordPress っぽくつくる。

これであまり熱心ではない開発者はWPだと思うだろ。

あとは Router というか $routes の設定をいじって、URLのパターンから推測できないようにする。
エラーメッセージの文言をすべて変更する。

まぁでも、既知の領域では隠蔽できるだろうけど、いつ何時新しい状態が現れるか分からないから完全に隠すのは難しいと思われる。
0110nobodyさん2014/11/16(日) 19:46:24.87ID:???
Cakeの1や2系で、検索サイトのDB設計したりすると遅いの?
零細企業のサイトで、たった数件の検索に毎回15秒かかってるとこがあって理解できん
作った人間が下手なだけならいいが、Cakeの問題なら仕事で使いたくない
MVCやルーティングだけFW、DBやSQLカスタマイズでセキュリティ自力対応じゃダメかね
Cake案件が多いので、企業が使いたがってるのかは知らんが、気になってしょうがない
0111nobodyさん2014/11/16(日) 21:26:26.08ID:???
まともに設計してそこまで遅くなるわけない
開発者もサーバの性能も糞すぎるとかじゃねえの
0112nobodyさん2014/11/16(日) 22:24:01.26ID:???
データが1000万行あって、トランザクションして、ソートして、メモリ足りなくて、SQLシステム共にスワップして…

だったら15秒くらいかかる。
0113nobodyさん2014/11/16(日) 22:36:50.85ID:???
そのサイトには、総数500件って書いてあるから
非表示状態のレコード含めても1000行はこえないでしょ
過去テーブルに移してなきゃ、ID番号が4万台だから最大4万行のはず
0114nobodyさん2014/11/16(日) 22:40:15.89ID:???
?
0115nobodyさん2014/11/17(月) 18:34:09.12ID:???
>>113
すごいエスパーだな
0116nobodyさん2014/11/17(月) 20:32:45.39ID:???
パフォーマンスの調査すらできない奴なら
何使っても一緒だわな…
0117nobodyさん2014/11/17(月) 23:14:10.85ID:84kAq3io
>>109
ありがとうございます。
0118nobodyさん2014/11/18(火) 07:26:12.45ID:BXcgCvPC
cakePHPでテーブルを定義して
<td style="width:100px"></td>

という風に列幅を指定しているにも関わらずサイズが適用されません。
なぜでしょうか?また、どうすればcakePHPを使用していても
指定したサイズに列幅調整を行う事が出来ますか?
0119nobodyさん2014/11/18(火) 16:42:48.64ID:???
idをauto_incrementにすると、1から順に増えてきますが、1001からとかってできますか?
0120nobodyさん2014/11/18(火) 18:42:27.17ID:???
>>119
それはcakeじゃなくてDBの問題。MySQLなら
ALTER TABLE テーブル名 AUTO_INCREMENT=1001
とか実行すればいいよ
まあphpmyadminとか使ってGUIでやったほうが楽だけどね

>>118
まちがいなくcakeは無関係
出力された後のことはHTMLとブラウザの解釈の問題
とりあえずは簡単なサンプルでタグの不整合だのCSSだのをチェックし直すといい
0121nobodyさん2014/11/18(火) 19:07:45.09ID:???
phpすら関係ないなw
0122nobodyさん2014/11/18(火) 20:13:46.51ID:???
>>110
インデックス貼ってないんじゃないの?
mysqlってインデックス貼らないと遅くなるの俺は最近知ったね。
0123nobodyさん2014/11/18(火) 23:18:16.68ID:72ycgRPS
Google Analytics をelementの中に定義して
次の呼び出しをしているのですがなぜか
Google Analytics に認識されません。

サイトにアクセスした直後にリアルタイムを見ていますが
アクセスが一向にカウントされないのですがなぜでしょうか?


<?=$this->element("google_analytics")?>
</head>
0124nobodyさん2014/11/18(火) 23:24:02.50ID:8pS7TyyM
>>123
だけど分かりました。単なるタイムラグでした。
0125nobodyさん2014/11/18(火) 23:27:49.19ID:???
PHP関係ない質問はよそでやれよ……
0126nobodyさん2014/11/18(火) 23:34:44.64ID:???
>>110
その遅さじゃindexどころか、innodbで↓やってるとしか思えないな

「総件数(○○件)」 SELECT count(*) FROM テーブル
「検索項目A(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'A'
「検索項目B(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'B'
「検索項目C(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'C'
0127nobodyさん2014/11/20(木) 18:21:53.44ID:CTsz5JQb
cakePHPで次の様にオーソドックスなパス配置で
システムを組んでいます。

hogeuser/apps/test_app
→アプリ本体

hogeuser/cake
→cakePHPのモジュール群

hogeuser/www/test_app
→最初にアクセスされる基本ファイル等(index.php)


hogeuser/www/image/****
→ここにAuth認証でログインしたユーザのみが画像等をアップロード出来る様な
システムを組みたいのですが、cakePHPで実現可能でしょうか?


様にしたいのですが
0128nobodyさん2014/11/21(金) 01:55:20.21ID:???
>>127
アセットのパスは CakePHP に依存せず自由だよ。
ほかの原因で権限が無いとかはあるかもしれないけど、Cake側では制限はない。
0129nobodyさん2014/11/27(木) 14:38:07.68ID:???
スマホ用のビューってどうやって管理してますか?
テーマを作るってやり方を見たのですが、
他に良い方法があれば教えてください。
0130nobodyさん2014/11/27(木) 22:10:45.74ID:???
なぜテーマが使えないのか、
あるいは何がしたいのか書かないとレスしようがないんじゃないかな
0131nobodyさん2014/11/28(金) 06:59:13.03ID:???
CSSで解決できるから、FWから見たらstaticページと扱いが何も変わらない。
Model(ロジック)の方は、特別にスマホ対応をする場合もあるかもしれんが。
01321292014/12/01(月) 13:39:14.91ID:???
>>130
「テーマが使えない」ではなく、他に方法があれば教えてくださいという質問です。

>>131
レスポンシブデザインならCSSだけで良いのですが、
スマホ専用サイトの場合、ビューが変わるし、必要なモデルも変わります。
PC版と同じコントローラーを使って同じだけモデルを呼び出すのは
無駄な要素が大きいと思い、テーマの変更だけで良いのかな?と思いまして。
0133nobodyさん2014/12/01(月) 23:10:19.10ID:???
>>132
俺はテーマ以外考えられんな。
レスポンシブでPC、スマホの両方対応というのも無駄な処理がコントローラーに増え、重くなるし。

テーマ一択で。
0134nobodyさん2014/12/02(火) 00:51:09.72ID:???
呼び出すモデルが変わるならいっそコントローラーやアクションを分けるのもありじゃない?
アクション共通ならビューにサブディレクトリ作るだけでもいい気が
0135nobodyさん2014/12/02(火) 01:45:31.11ID:???
>>133
横レスだけどレスポンシブデザインにしたらサーバーサイドの処理は基本的には変わらないんじゃないの?
俺の勘違いかな。
0136nobodyさん2014/12/02(火) 02:25:29.44ID:???
>>135
おっしゃる通り。確かに変わりませんね。
僕のミスです。失礼しました。

レスポンシブデザインって、ちゃんとしたサイトだとPCとスマホは分けるべきだと思うんだけどな。
0137nobodyさん2014/12/02(火) 06:43:53.62ID:???
Modelが変わるとか後出しだし。
Modelが変わるなら、Viewも応じて変えた方がいいに決まってる。
0138nobodyさん2014/12/04(木) 15:36:33.40ID:R0j+bkTk
ビューのコーディングについて相談です。

Cakeで出力されるHTMLのCSS部分はローワーキャメルケースですが、
HTMLヘルパーを使用しない箇所はどうしていますか?
同じようにローワーキャメルケースで書いてますか?
それとも独自の書き方を採用していますか?
0139nobodyさん2014/12/04(木) 16:07:23.93ID:???
>>138
独自だね
0140nobodyさん2014/12/05(金) 10:17:08.32ID:???
>>139
そうですか。特にこだわらないでも良いですね。ありがとうございます。
0141nobodyさん2014/12/10(水) 12:16:09.19ID:D9PtQRCX
Cake2.5.6でappをapp-adminのように変更しています。
サーバからコマンドでシェルを実行させる場合について質問です。

シェルを実行させるパスを
/usr/local/bin/php /home/hoge/public_html/app-admin/Console/cake.php Hello

みたいにすると、「Shell class Hello Shell could not be found」というエラーになります。
上記パスのapp-adminをappにすればエラーが出ないのですが、
appの名前を変えても実行するにはどうすれば良いのでしょうか?
0142nobodyさん2014/12/10(水) 14:34:35.99ID:???
>>141

コンソールから起動させるのは cake.php じゃなくて cake (bash) のほうな。
0143nobodyさん2014/12/10(水) 14:37:49.96ID:???
あぁ、悪いちゃんと読んでなかったわ。
app の名前を指定するパラメータは確か -app じゃなかったかな。
-app app-admin
みたいなのをくっつければいいかもしれない。

そもそも、そんな呼び出し方する理由が分からんがな。
普通は app-admin のディレクトリに移動して Console/cake を呼び出すんだぜ。
0144nobodyさん2014/12/10(水) 15:23:03.23ID:???
-app app-adminの変更で出来ました。ありがとうございました。
0145名無しさん@そうだ選挙に行こう2014/12/14(日) 19:10:29.85ID:R4VgTAzM
cakePHPでassociationを使うと
毎回結合が走っている様です。


この条件の時には結合を走らせるけれども
この場合には、結合せずにfindする


といった事をコントローラー側で制御する事は可能でしょうか?

毎回、結合してクエリ結果を返していると、テーブルのレコード件数が大きくなってきた場合に
パフォーマンスに影響が出る事が予想れます。
0146nobodyさん2014/12/14(日) 21:01:50.73ID:???
>>145
bindModel()やunbindModel()で動的に変更するか
検索時にjoinsを使えばいい
詳しい使い方は↓に載っている
http://book.cakephp.org/2.0/ja/models/associations-linking-models-together.html

このスレの質問のほとんどはこのドキュメントで解決できるので
開発者なら他のページも一通り読んでおくことを薦める
0147nobodyさん2014/12/14(日) 21:34:57.75ID:R4VgTAzM
>>146
thanks

見てみます!
0148nobodyさん2014/12/15(月) 10:55:13.83ID:???
bindModel/unbindModel 使うんだったら ContainableBehavior でも
対して変わらないような気がする。
どっちもとんでもないクエリ吐き出すんだけどね。

joins 使えばそこそこまとも。

CakePHP3 ではかなり改善される模様。
0149nobodyさん2014/12/15(月) 11:30:36.76ID:???
自分は Containable と Matchable 併用してる。
0150nobodyさん2014/12/15(月) 19:02:35.15ID:Hxt+g1uL
アソシエーションを使うより普通にSQL書いて実行
させた方が楽な気がするのだが俺だけ?
0151nobodyさん2014/12/15(月) 20:40:41.52ID:???
短かったら楽だけど、長いと間違いの元だよ
0152nobodyさん2014/12/15(月) 21:02:08.37ID:???
CakePHPの呪文を覚えない限り、複雑なのは直接書いたほうがむしろ間違わない。
0153nobodyさん2014/12/15(月) 22:12:11.75ID:UqCW5FKL
こっちは inner join したいのに left join しやがるので
アソシエーションは好かん
0154nobodyさん2014/12/16(火) 03:08:27.79ID:???
Cakeのアソシエーションって何?
SQLをPDOとかで直に書いた方がいいの?
それともZendとかで最小限のライブラリ読み込んだ方がいいの?
何で日本人はCake使いたがるの?
英文サイト解読してlaravelとか使えないの?
0155nobodyさん2014/12/16(火) 09:33:38.60ID:???
>>153
type指定でinnerに出来るよ
0156nobodyさん2014/12/16(火) 10:38:29.65ID:MEG1C3Vr
>>155
しらなんだ!!
0157nobodyさん2014/12/16(火) 17:04:45.60ID:???
なぜ、outerがデフォルトなんだ?w
0158nobodyさん2014/12/16(火) 18:15:37.65ID:???
>>157
innerだと?と思う人がいるからだよ
0159質問�@2014/12/18(木) 00:17:48.32ID:ZHBfn1LO
Console/UxnkoShell.php に対してTeraTermからシェルを実行しているのですが
原因不明のエラーが出ます。

以下のコードを実行したところ投入データに一意成約違反などない筈なのに
エラーが出てしまいます。

気になるのは、エラーメッセージに「'30-1-2014-12-17'」こんな文字列がどうやらSQLで
発行されている様です。

全く原因が分かりません。お助けくださいm(_)m


$insert_data = array(
'tableTests' => array (
'user_id' => $user_id,
'sequence_number' => $sequence_number,
'confirm_date' => $executed_date,
)
);

debugprint($insert_data);
0160質問�A2014/12/18(木) 00:19:48.09ID:ZHBfn1LO
デバッグ出力した結果です。

array(1) {
["tableTests"]=>
array(4) {
["user_id"]=>
string(2) "30"
["sequence_number"]=>
string(1) "1"
["confirm_date"]=>
string(10) "2014-12-17"
}
}



$this->tableTests->create();
$this->tableTests->save($insert_data);


なぜかエラーメッセージが出てしまいます。

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '30-1-2014-12-17' for key 'PRIMARY'
#0 /home/maxnko/cake/lib/Cake/Model/Datasource/DboSource.php(460): PDOStatement->execute(Array)
#1 /home/maxnko/cake/lib/Cake/Model/Datasource/DboSource.php(426): DboSource->_execute('UPDATE `uxnko...', Array)
0161質問�@�A2014/12/18(木) 00:39:30.54ID:ZHBfn1LO
原因が分かりました。
0162nobodyさん2014/12/18(木) 10:51:48.08ID:???
なんだったの?
0163nobodyさん2014/12/18(木) 16:27:33.17ID:IJydX9LX
>>162
アソシエーションのプライマリキーが邪魔してました。
アソシエーション使わない方が小回りが利いて良いですね。
0164nobodyさん2014/12/19(金) 19:52:59.80ID:BHq08Q5j
Ajaxで開発をこれまで行っていましたが
毎度、ブラウザのみならずJSデバッガーを開いてJSを毎度開いてデバッグする必要があり手間なので
全てpostを行い、サーバ側でバリデーションその他を行う様にしました。

開発の生産性はAjaxと比べてどちらが早いですかね?
0165nobodyさん2014/12/19(金) 22:23:30.29ID:???
>>164
サーバー側のがいい
0166nobodyさん2014/12/19(金) 23:20:57.71ID:???
そもそもAjaxだかなんだか関係なく
サーバ側でバリデーションは必須じゃないのか……
0167nobodyさん2014/12/21(日) 15:17:01.54ID:kDlJPF64
>>165 >>166
そもそもだけど、Ajaxで is_post"ajax")って感じで
バリデーションをするとcrome上でデバッガーを開いてやらないといけないでしょ?
それが面倒なんです。


普通にPOSTで全てリクエストを行っていれば
簡単にデバッグ出来るけど、Ajaxにするとサーバからの戻り値をJavaScript側でもデバッグを
する必要があるでしょ?

それが本当に面倒に感じるんです。
0168nobodyさん2014/12/22(月) 22:18:50.23ID:???
>>167
クライアント側でのバリデーションはオマケ
クライアント側でバリデーションをやろうがやるまいが、サーバ側でのバリデーションは必須
0169nobodyさん2014/12/23(火) 21:07:58.32ID:???
composer ってさ、バージョン指定してないと全部アップデートされるじゃん。
バグの原因にならんの?不安で仕方ない。

アップデートしたくないのをjsonで削除するとファイルまで削除されるし。
0170nobodyさん2014/12/23(火) 21:31:44.30ID:???
指定しなよ
0171nobodyさん2014/12/24(水) 01:58:44.52ID:???
>>170
例えばcake2.4使ってて、中身を少し変えるとするじゃん。
で、2.4を指定してcomposerしたらどうなる?

1 同じ2.4なので何も起きない
2 同じ2.4だけどファイルが少し違うので新しい2.4を、上書きする

どっちなんでしょうか?
0172nobodyさん2014/12/24(水) 08:56:59.50ID:???
>>171
composer.jsonにcakephp/cakephpを2.4.*と指定したということでいいかな?
https://packagist.org/packages/cakephp/cakephp
基本的にリポジトリに登録されているバージョン情報を利用するわけなので
開発中のバージョンを指定しなければ問題無いだろう

●composer install
- composer.lockファイルがある → composer.lockファイルに記録されたものと同じバージョン
- composer.lockファイルがない → Packagistに登録されている2.4系の最新バージョン

●composer update
Packagistに登録されている2.4系の最新バージョン


自分で開発していてアップデートしたくないパッケージがあれば
composer.jsonに2.4.8などとバージョンを決め打ちで指定してupdateすれば影響はほぼない
ソースを配布するならcomposer.lockを残しておいてupdateは自己責任でやれよってことで良くないか?
0173nobodyさん2014/12/24(水) 11:20:42.46ID:???
>>172
ありがとうございます!
composer.lock初めて知りました。
見てみます。
0174nobodyさん2014/12/26(金) 14:52:05.09ID:y17exSu4
Cake2.x系でFormヘルパーを使用して以下のようなラジオボタンを出力しています。

<?php echo
  $this->Form->input(
    'Fuga.fuga_id',
       array(
           'label' => false,
           'legend' => false,
           'div' => false,
           'type' => 'radio',
           'options' => $hogeArray,
           'default' => $hogeDefault));
?>

optionsに指定している「$hogeArray」はコントローラ側からセットしている配列。
defaultに指定している「$hogeDefault」はデフォルト選択値。
やりたいことは「$hogeArrayがn個毎に改行を入れて表示」なのですが、上手くいきません。

separatorに例えば「<br />」などを指定すれば項目1つずつ改行されるのですが、
個数指定をしてseparatorを入れるようなことはできたりしないでしょうか?
0175nobodyさん2014/12/26(金) 22:05:31.40ID:???
ただの見た目の問題なんだしCSSでやればよくない?
IE8? 知らないブラウザですね
0176nobodyさん2014/12/26(金) 22:20:14.73ID:???
>>174
そういうのは出来ないと思う。
javascript で挿入するか >>175 の言うように CSS でやるか、
レンダリング結果をパースして変換。
今なら :n-th セレクタ使えるから CSS が一番手っ取り早いだろうね。
0177nobodyさん2014/12/27(土) 09:59:18.74ID:???
>>175-176
レスありがとうございます。
やっぱりできないんですね。

仰る通り、見た目の問題ですのでCSSで制御しようと思います。
ありがとうございました!
0178nobodyさん2014/12/30(火) 14:19:54.96ID:9yoyGP6/
cakePHPで入力フォームを用意して登録ボタン押下時に
サーバにポストした場合、サーバサイドでは

入力項目においてdisabled を付けている項目は $this->request->data で取得出来ない
のは仕様なのでしょうか?
0179nobodyさん2014/12/31(水) 10:07:14.07ID:???
>>178
cakeでなくhtmlの仕様
0180nobodyさん2015/01/01(木) 14:03:44.77ID:qSREffE+
>>179
ありがとうございます。解決しました。
0181nobodyさん2015/01/02(金) 09:29:55.89ID:jgbndoA2
cake2.5.8でfacebookをつかって認証してるのですが、
デバッグモードが2もしくは1の時は問題なくログイン・ログアウトできるのですが、
0にするとできなくなります。
http://www.msng.info/archives/2010/12/cakephp-error-only-when-debug-level-is-0.php
にある$this->autoRender = false;
は入れてあるのですが、他に解決策はありますか?
0182nobodyさん2015/01/06(火) 01:58:05.89ID:???
:n-th知らなかったから試しに使ってみたけど結構便利だね
けどIE8は効かないということなんで、
IE8を対象外にするわけにもいかず結局開発では使えなかった・・・
181はもうちょっと具体的にどんな実装をしたのかとか
どんなエラーが発生しているのかとか報告しないと答えようがないんじゃないかな
0183nobodyさん2015/01/06(火) 20:15:42.85ID:???
IE8早く爆発しろ
0184nobodyさん2015/01/06(火) 21:00:09.97ID:???
IE6はようやく考えなくても良くなったけどね…
IE8はまだ15〜20%ぐらいあるから、簡単には切れないよね
0185nobodyさん2015/01/06(火) 21:26:44.31ID:???
ご老体のIE8様は別枠でJavaScriptで介護して差し上げろ
0186nobodyさん2015/01/07(水) 14:32:26.18ID:???
嫌だ。もう無視する。
0187nobodyさん2015/01/07(水) 20:54:00.88ID:???
自社開発webアプリでもない限り
開発側にブラウザを選ぶ権利はなくて顧客側の要望次第だろう
今まで対応していたブラウザを切りたければうまく交渉するしかないね
IE8は全然許せるけどIE6はブラウザ界のガン細胞だと思う
0188nobodyさん2015/01/09(金) 12:45:51.25ID:NOQO6qeZ
Formでデータベースに保存した画像の表示が出来ないんだけどどうやるんだ・・・
保存した物をforeachで取り出したいけどエラー地獄だわ・・・
0189nobodyさん2015/01/11(日) 14:25:23.64ID:???
そもそも画像保存にDB使うなよ
0190nobodyさん2015/01/14(水) 16:05:28.03ID:FY0jfzBq
cakephp2を使っているのですが、URLを.htmlにすることは可能でしょうか?

http://www.hagehage.com/tururi/index.html

のような形にしたいのですが。
0191nobodyさん2015/01/15(木) 00:37:14.38ID:HkjxQN1G
>>190
多分この辺の情報が役に立つと思われ
http://stackoverflow.com/questions/3410611/how-can-i-append-html-to-all-my-urls-in-cakephp

昔調べたときは、あぁ簡単にできるんだな、ぐらいに思って一度も使ったことがないからよくわからないや。
0192nobodyさん2015/01/15(木) 00:39:51.88ID:???
読んでみたら一番上の答の人がドキュメントに詳しく載ってるって書いてたなw

http://book.cakephp.org/2.0/en/development/routing.html#file-extensions
0193nobodyさん2015/01/15(木) 08:59:40.27ID:gSrUDeRO
>>191-192
ありがとうございます!
見てみます!
0194nobodyさん2015/01/15(木) 16:42:24.08ID:+TbruyRA
View側で hidden で隠し設定した値をコントローラ側で受け取る方法はありませんか?
0195nobodyさん2015/01/15(木) 17:10:54.40ID:???
>>194
あります
0196nobodyさん2015/01/16(金) 00:22:26.90ID:???
hidden てそもそも表示は隠しつつデータを受け取るためのものだろ。。。
意味不明
0197nobodyさん2015/01/16(金) 01:25:11.15ID:K/pOgg26
>>195
どうやってやるんですか?
Ajaxだと余裕ですがcakePHPでPOSTした場合にどうしても取得出来ません。

>>196
Viewのレンダリング時にhiddenに設定した内容を登録ボタンを
押した際にサーバ再度でhidde項目の値を取得したいのです。
0198nobodyさん2015/01/16(金) 04:52:36.72ID:???
>>197
普通に取得できるだろ。

おれの読解力に問題があるのだろうが、何いってるのかさっぱり分からん。
0199nobodyさん2015/01/16(金) 12:44:01.48ID:GWt4KHXH
>>198
≪View≫
<input type="hidden" name="name_hidden" value="komaneti">

≪Controller≫
$this->request->data["name_hidden"];
⇒issetで値があるかを判定するとfalse(つまり存在しない)となります。


はたして(PHP単独ではなく)本当にcakePHPでhidden項目の
値の取得をサーバ側(Controller)でする事は出来るのでしょうか?
0200nobodyさん2015/01/16(金) 13:29:28.04ID:???
hiddenまったく関係なくてnameが間違ってるだけじゃん
正しくはこう
<input type="hidden" name="data[name_hidden]" />

普通はフォームヘルパーで書くもんだよ
<?php echo $this->Form->hidden('name_hidden'); ?>

どうしてもnameを変えたくないなら$_POSTか$_REQUESTでどうぞ
あまりにも基本レベルで理解できてないようなんで、
まずはブログチュートリアルを実際にやってみたほうがいいよ
ブログチュートリアルって何?って人はそもそもマニュアル読んでない証拠なんで問題外
0201nobodyさん2015/01/16(金) 14:51:16.48ID:???
>>200
name="data[model_name][field_name]"
じゃないの?

どっちにしてもチュートリアルやってないような奴に何言っても時間の無駄だが
■ このスレッドは過去ログ倉庫に格納されています