【PHP】フレームワーク CakePHP 17ホール目【v3α】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2014/08/02(土) 21:57:41.01ID:LI0DdohH質問するときは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/
https://twitter.com/cakephp
https://www.facebook.com/CakePHP
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
※前スレ
http://kanae.2ch.net/test/read.cgi/php/1393661004/
0202200
2015/01/16(金) 15:28:30.64ID:???199の例文に合わせただけだよ
モデル名も入れた君の例なら取得側が
$this->request->data['model_name']['field_name']
になるってだけ
0203nobodyさん
2015/01/17(土) 19:58:26.44ID:???0204nobodyさん
2015/01/18(日) 01:38:43.72ID:YMMCDK0Swordpressでとあるポータルサイト(1日のPVは1,000程度)を運営しているのですが、
今後、数十万件以上(WPのカスタム投稿で)のデータを登録する予定となったので、
wordpressで構築するのは負荷的に耐えられないのかと思い、
CakePHPで構築しなおそうと思っています。
という状況なのですが、CakePHPにしたからwordpressよりも早くなるとは限らず、
むしろ遅くなる可能性もあるのでしょうか?
(フレームワークとしてCakeにこだわってはいないので、採用するのは他のフレームでも構いませんが)
ググってみたりはしたのですが、この比較対象がおかしいということもあるのか、
比較記事は見当たらず、私自身がCakeの事を本質的に理解出来ていないこともあり、困ってしまっています。
WPの中で生のSQL文を書いて、直接データ登録・取得・表示するのが良いのかなと
アホみたいな事も思い始めていますが・・・・
ちなみに私自身のスキルとしては、以下の感じです。
DB:基本的に大抵のことは出来て問題無い、テーブル結合とか検索とかの事は生のSQL文を書ける
PHP:wordpressのテーマを自分でガリガリとカスタマイズして外部からの入力フォーム・表示フォームとかは自分で作成しているが、難しい事は分からない
HTML・CSS:他サイトを見よう見まねで学んでいる状態で、ちゃんと理解出来ていない事が多い
0205nobodyさん
2015/01/18(日) 01:53:17.52ID:???お前は「そんな可能性はない」と言われたらCakePHPにするのか?
そうじゃないだろう?
だったらなぜまず試さない?
試してみて遅かったら、その原因を聞きにくるというのがやり方じゃないか?
もちろん、聞きにくるときは、それなりの情報を出しながらだが
0206nobodyさん
2015/01/18(日) 13:36:16.56ID:???CMSとフレームワークの違いがわかってないのかな?
wordpressはCMSの部類でコンテンツ管理する仕組みが既に入っているけど
cakephpみたいなフレームワークは言ってみりゃ単なる便利ライブラリ集だから
コンテンツ管理する仕組みとかは全部自分で実装しなきゃいけないよ
0207nobodyさん
2015/01/18(日) 17:42:38.18ID:???そんなあやふやな知識で博打を打つくらいなら
DBのチューニングやPHPアクセラレータの導入などしてWordPressの高速化をはかるほうがマシだと思う
翻訳止めるだけでも結構速くなるしな
DBからの読み出しメインのサイトなら、
前段にvarnishやnginxを置いてリバースプロキシキャッシュでも使えば?
0209nobodyさん
2015/01/19(月) 18:10:55.81ID:oaFQh/MS⇒OK
cakePHPの正規表現でこの日付型文字列の入力のみOKとするには
どういうコードを書けば良いでしょうか?
2015/2/2
⇒NG
0211nobodyさん
2015/01/19(月) 19:59:44.14ID:oaFQh/MSどうやって判定すれば良いのでしょうか?
0213nobodyさん
2015/01/19(月) 21:40:22.05ID:oaFQh/MSはい、教えてください。
0214nobodyさん
2015/01/19(月) 23:55:25.95ID:???public $validate = array(
'myDatetimeCheck' => array(
'rule' => '^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$',
)
);
みたいにすればいいのでは
このパターンはケタ数しかチェックしてないから日付には使えないけど
0215nobodyさん
2015/01/20(火) 00:39:05.11ID:MQEJ/fByサンクス
正規表現が苦手なんだよね
0216nobodyさん
2015/01/20(火) 00:56:53.90ID:???俺も得意ではないけど頭の体操がてらやってみては
ただ実際には4/31は?とか閏年じゃ無い年の02/29は?とか言う問題が出てくるから
正規表現でもできるとは思うけど
cakePHPのVaridation::dateと二段構えにするとか
カスタムバリデーションでphpのcheckdateを通すとか工夫は必要になるかも
0217nobodyさん
2015/01/20(火) 13:50:15.77ID:???Validation.php見ればわかるけど日付のチェックは閏年を考慮した正規表現一発でやってるよ
適当に改造してみるとこんな感じ
$separator = '(/)';
$regex['ymd'] = '%^(?:(?:(?:(?:(?:1[6-9]|[2-9]\\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))' .
$separator . '(?:02\\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\\d)\\d{2})' .
$separator . '(?:(?:(?:0[13578]|1[02])\\2(?:31))|(?:(?:0[1,3-9]|1[0-2])\\2(29|30))|(?:(?:0[1-9])|(?:1[0-2]))\\2(?:0[1-9]|1\\d|2[0-8]))))$%';
改造ポイント
・セパレータは/しか認めない
・西暦2桁表記をNGに変更
・月の1桁表記をNGに変更
・日の1桁表記をNGに変更
書いといてなんだけど、理解できないようなら素直に文字列分解して
4年は〜100年は〜400年は〜のロジック入れればいいよ
0218nobodyさん
2015/01/20(火) 22:12:54.49ID:uK/q/RsU書いているのですが、ソースコードの行数が増えてきて
Eclipseで編集する際にフリーズを感じます。
この様にコードが増えて来た場合には
コントローラ名を分けるしかないのでしょうか?
0219nobodyさん
2015/01/20(火) 22:23:48.18ID:???機能ないし利用するモデルごとに分ける
プリフィックスルーティングでも使えばいい
メソッド一つ一つが長くなっているなら
コンポーネントやモデルや独自のサービスクラスに処理を移すことを考える
0220nobodyさん
2015/01/20(火) 22:51:22.09ID:uK/q/RsU>機能ないし利用するモデルごとに分ける
>プリフィックスルーティングでも使えばいい
こっちの事象です。
プリフィックスルーティングとか初めて聞きました。
こちらを探して試してみます。
0221nobodyさん
2015/01/25(日) 13:55:32.77ID:???URLが変わってもいいなら、普通にコントローラ分割すればいいし、
URL変えるわけにはいかないなら、"修正中だけ"別コントローラで作って
完成したら1つに戻せばいい
大きなライブラリを使ってるならeclipseから見えない場所に移動させるとか
コーディング以外にも工夫のしようはあるだろう
0222nobodyさん
2015/01/25(日) 18:50:35.80ID:???複数のコントローラに分割した上でhttp://example.com/admin/から始まるURLを使いたかったらってこと
AdminControllerなんて名前をつけてるのはURLの都合だろうと思ってね
eclipseが重くなるほど1つのファイルのソースコードが増えてるってのが本当なら
1つのコントローラに管理画面の全てを詰め込む設計はまずいだろうし
0223nobodyさん
2015/01/26(月) 11:10:30.59ID:ZT64LJ1Cなぜかファイルをアップロードしようとすると「save」ファンクション
が認識されずにエラーになってしまいます。
http://www.tailtension.com/cakephp/1512/
【エラーの出るコントローラの中のコード】
//画像の保存
if($this->Post->save($this->request->data))
⇒ここでエラー
【エラー内容】
Fatal error: Call to a member function save() on a non-object in
【捕捉】
コントローラ名は、 TestController.phpで
定義したアクション名は、 update_image です。
0224nobodyさん
2015/01/26(月) 13:32:11.28ID:???CakeというよりPHPのエラー通りだと思うけど
そのコントローラでPostモデル呼んでないだけじゃない?
0225nobodyさん
2015/01/26(月) 18:47:51.81ID:/y+cf3Fdquery使ってバインド変数で受け取れますか?
Oracleでやったことのある方がいたら教えていただきたく……
Oracle以外でも、ヒントになるやもしれませんので、教えてくださったら助かります
なんでOracleなのにcakeにしてしまったのか……
0226nobodyさん
2015/01/26(月) 20:09:16.40ID:OoDGdBhCサンクス
結局プレーンなPHPを使ってアップローダを作る事にしました。
0227nobodyさん
2015/01/29(木) 00:13:39.62ID:rYg0zKsM会員登録ページやログインページのURLが
/users/add
/users/login
だとします。
会員情報の変更は、会員専用ページにログインして行えるとします。
その場合、会員情報の変更はどういうURLが適切なんでしょうか?
通常は/users/editだと思いますが、少し違和感があります。(ログイン中に操作するので)
mypagesを作ってプラグイン化して/mypages/users/editみたいにする事も出来るでしょうが、
その場合は、会員用のコントローラー(UsersController.php)がだぶる気がします。
ログイン前のページ・ログイン後のページと分ける設計の場合、
どういうコントローラーとアクション構成にすれば良いと思いますか?
0228nobodyさん
2015/01/29(木) 20:58:50.89ID:???NULL許可、デフォルトNULLと設定したカラムでデータを省略してinsertした際の
挙動で困っております(当方2.6.1)。
CREATE TABLE [dbo].[items] (
[id] int NOT NULL IDENTITY(1,1) ,
[name] nvarchar(200) NOT NULL DEFAULT (N'') ,
[type1] int NOT DEFAULT ((0)) ,
[type2] int NULL DEFAULT NULL ,
PRIMARY KEY ([id])
)
こんな感じのテーブルがあったとして、
$data['Item']['name'] = 'test';
$this->create();
$this->save($data);
とした場合、MySQLだとtype1,type2ともにDBに設定したデフォルト値でInsertが行われます。
SQLServerの場合、「Conversion failed when converting the varchar value 'NULL' to data type int.」
という理由でエラーとなります。
発行されるSQL文で、SQLServerの場合はNULLをシングルコーテーションで囲む必要が無いのに
囲んでしまっているというのが原因のように見えますが、これを回避する方法はありますでしょうか?
0229nobodyさん
2015/01/31(土) 21:52:23.62ID:r0T1vu8nバリデーションエラー時のメッセージにフォーム入力の値を使いたいのでですが
以下$valueの部分はどのように書けばいいのでしょうか?
public $validate = array(
'name' => array(
'isUnique' => array(
'rule' => array('isUnique'),
'message' => $value . 'は挿入済みです。',
'required' => true,
)
)
);
0231nobodyさん
2015/02/03(火) 15:50:31.15ID:???コールバックbeforeValidateで処理するか、
独自のバリデーションメソッド作るか、お好きな方で。
0232229
2015/02/04(水) 18:25:08.07ID:???>>231
ありがとう。
ビューで$this->validationErrors['モデル名']のループまわすことで対応しました。
0233nobodyさん
2015/02/04(水) 22:31:45.65ID:HkYqZDdt普通の文字は問題無いのですが
「"」や「>」はサニタイズしてDBに保存するのか
それとも、エスケープしてDBに保存するのか
どちらが一般的なのでしょうか?
0234nobodyさん
2015/02/04(水) 23:47:57.07ID:???HTMLエスケープのことを言ってるなら
HTML出力時にエスケープするのが定石
DB保存時にHTMLエスケープしたりはしない
0235nobodyさん
2015/02/04(水) 23:58:09.18ID:???入力時のチェック・処理だけだとその後の処理によってスクリプトの文字列が生成される可能性があるので根本的な対策にならない
入力値サニタイジング後の値を逆手に取るセカンドオーダー攻撃なんてものもある
HTMLタグを許可する場合に根本的な対策をするには構文解析して必要な要素を抜き出す必要がある
https://www.ipa.go.jp/security/vuln/websecurity.html
ここにIPAが出してる安全なウェブサイトの作り方というPDF資料がある
クロスサイトスクリプティングの項目が参考になる
0236nobodyさん
2015/02/05(木) 00:01:18.00ID:???そういった処理は特に意識しなくても勝手にやってくれる
嘘だと思うなら、ブログチュートリアルの記事追加で
君の思いつく限りの変な文字を入力して保存、表示をしてみるといい
どんな入力をしようと問題なく動作するはず
自動でやってくれないのは
・DBがEUC-JPなのに入力に�@を使うとかの特殊なケース
・SQLを文字列で直接書いている
・ヘルパーを使わずに変数を出力
こういったときは自分でサニタイズ、エスケープ等が必要になる
0237nobodyさん
2015/02/05(木) 00:10:53.62ID:kXXlZufE皆さん詳しくどうもありがとうございます。
入力 > 確認 > 登録 or 戻る
の処理の一連の流を作っているのですがユーザが 「"」を入力した場合に
文字列が途中で端折られる為に、どうしようか悩んでいました。
0238nobodyさん
2015/02/05(木) 00:11:24.20ID:???htmlspecialchars()のラッパーがあるから楽でいいね
http://book.cakephp.org/2.0/ja/getting-started.html#id7
0239nobodyさん
2015/02/05(木) 00:13:20.68ID:???$thisを使うためにコンストラクタで$validate定義したら一応うまくいったとだけ言っておく
てきとーに回答のなかったものにも答えておく
>>225
記事内容はMySQLだけど参考になると思う
http://blog.xole.net/article.php?id=711
>>227
正解も間違いもないような話題はリアルのチームメンバーと話し合ったほうがいいと思うよ
>>228
SQLServerは環境がないから試せないけどDBのデフォルト値を設定したくなければ
create()の代わりにclear()を使うといいかも
バージョンが古くてメソッドがない場合はcreate(false)で
0240nobodyさん
2015/02/05(木) 00:52:32.89ID:mACTgUNt「彼は"おはよう"と言った」
という文字列が含まれていたとして
確認画面で<span></span>の中に確認メッセージを表示させて
「戻る」が押された場合に、最初の画面のメッセージ入力エリア(textarea)に
ままの「"」が表示された形で
「彼は"おはよう"と言った」
を出すには、�Aを使う事によりうまくいきました。
ここで疑問なのですがそもそも�@と�Aの違いは何なのでしょうか?
�@ Sanitize::clean($message_hoge);
�A h($message_hoge);
うーん、文字列で事象の説明が難しいです。。。
0241nobodyさん
2015/02/05(木) 01:06:39.73ID:???h()の実体はhtmlspecialchars()
http://php.net/manual/ja/function.htmlspecialchars.php
https://github.com/cakephp/cakephp/blob/master/lib/Cake/basics.php#L202-L234
Sanitize:クラスはCookbookに説明あり
http://book.cakephp.org/2.0/ja/core-utility-libraries/sanitize.html#Sanitize::clean
0242nobodyさん
2015/02/05(木) 01:12:45.87ID:???Sanitize::clean()は全く用途が違うメソッドでしょう
http://book.cakephp.org/2.0/ja/core-utility-libraries/sanitize.html#Sanitize::html
>このメソッドは、ユーザが送信したデータをHTMLの中に表示する準備をします。
>これは、ユーザがレイアウトを壊したり画像やスクリプトを挿入することを防ぐ上で特に便利な機能です。
>もし「$remove」オプションを true にセットした場合、データに含まれるHTMLのタグ等は全て削除されます。
>false にセットした場合は HTML エンティティとして表示されます。:
>文字をエスケープすることはエラーの可能性が低く、知られていない新しいタイプの攻撃に対して強いので、文字を取り除くよりもよい方法です。
0243nobodyさん
2015/02/05(木) 01:26:53.54ID:???echoするときにh()も書くなら、いっその事、DBに保存する前にサニタイズした方が良いと思うんだが。
beforeSave()で一括サニタイズできるし。それにエスケープさせたくない場合は復元すればいいだけだし。
0244nobodyさん
2015/02/05(木) 01:30:01.34ID:???0245nobodyさん
2015/02/05(木) 01:34:06.94ID:???0246nobodyさん
2015/02/05(木) 01:34:15.37ID:???0247nobodyさん
2015/02/05(木) 01:54:17.98ID:???0248nobodyさん
2015/02/05(木) 10:48:48.93ID:???DBのデータをCSV出力したいとき、逆変換するのか
DBに入れないデータを表示するときは、表示のときにエスケープするのか
デートの前、家から出るときにコンドームしてるようなもんだぞ
途中でトイレいくときどうするんだ
やる前にまたゴムするのか、2重になっちゃうぞ
ってこと
0249nobodyさん
2015/02/05(木) 11:04:33.13ID:MaFLMZhc分かり易い!サンキュー
取り敢えず、 h() で要件を満たせました。
anonymosuに狙われたら一発アウトそうなセキュリティだけどw
0250nobodyさん
2015/02/05(木) 17:00:36.25ID:???0251nobodyさん
2015/02/05(木) 18:27:25.06ID:???いつ生でしても良いようにピル飲んだらいいじゃない。
ってな感覚で事前エスケープしておくのは駄目ですか?
0252nobodyさん
2015/02/05(木) 19:14:43.36ID:???その辺は過去にさんざん議論されてて、結局アウトプットのときに
対処するのがベストプラクティスだねって結論が出てるんだよ。
0254nobodyさん
2015/02/06(金) 00:02:00.29ID:???挿入直前自動コンドーム装着機能を持つ
テンプレートエンジンを使えばいいだろ
0255nobodyさん
2015/02/06(金) 02:02:30.97ID:???0256nobodyさん
2015/02/06(金) 09:13:12.13ID:???0257nobodyさん
2015/02/06(金) 21:09:55.08ID:XFfNnVZS0258nobodyさん
2015/02/07(土) 06:03:05.10ID:???0259nobodyさん
2015/02/07(土) 14:20:33.66ID:???0260nobodyさん
2015/02/12(木) 19:19:14.90ID:+z/qvGfu自動で or and 検索する事は出来ますか?
参考になるサイトがあれば教えてください。
name = 'A' or name = 'B'
name = 'A' and name = 'B'
0263nobodyさん
2015/02/13(金) 12:47:36.01ID:trE+wwbVcakePHPオリジナルでは出来ないですか?
0264nobodyさん
2015/02/13(金) 13:27:08.47ID:???http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html#id5
あと、
name = 'A' and name = 'B'
は常にfalse
0266nobodyさん
2015/02/13(金) 20:17:11.72ID:hnonnNdgOK
0267nobodyさん
2015/02/14(土) 12:22:29.76ID:riWWWAwOログインする時、「ユーザー名+パスワード」と「メールアドレス+パスワード」の2パターンが主に使われると思います。
管理人は前者の方法でログインし、一般ユーザーは後者でログインします。
usersテーブルが
id|username|password|email|role|created|modified
だとして、ユーザー名を使わないログインの場合は単純にusernameをNULLにして登録すれば良いんですかね?
それか、usernameにemailの値を代入するべきですかね?
でもその場合、文字数制限のバリデーションエラーが起きる気がします。
(それはroleの分類で回避すればいいことですが)
それか、usersテーブルひとつにまとめるのではなく、分けるべきでしょうか。
どのようにするのが良いかご意見お願いします。
0270nobodyさん
2015/02/14(土) 17:22:20.07ID:???俺ならメールアドレスパスワードに統一。
別に管理人ログインフォーム作成。
管理人フォームにはユーザー名とパスワード。
って感じにする。
0271267
2015/02/14(土) 17:33:06.70ID:???はい。自分もそのような画面設計なのですが、>>267でも質問しました通り、
テーブルをどういう構造にしたらいいか教えてほしいと思いまして・・。
0272nobodyさん
2015/02/14(土) 18:20:44.22ID:???ヌルでいいよ。
名前のところにメールアドレスなんて入ってたら
次触る人がナンジャコリヤァアってなる。
0274nobodyさん
2015/02/14(土) 21:07:46.13ID:???0275nobodyさん
2015/02/14(土) 21:59:10.14ID:???0276nobodyさん
2015/02/15(日) 00:53:41.16ID:???0277nobodyさん
2015/02/15(日) 14:50:48.71ID:1brRf+Ilヘルパーを使ってボタンを出力しようと以下のコードを書いたところ
なぜかエラーが出てしまいます。
array() の部分を省いてボタン名だけの指定であれば動きます。
cakePHP2ではボタンにID、NAME属性を付ける事が出来ないのでしょうか?
[コード]
echo $this->Form->button("Edit",
array(
"id" => "id_hoge",
"name" => "name_hoge",
),
);
[エラー内容]
Parse error: syntax error, unexpected ')'
0278nobodyさん
2015/02/15(日) 16:24:05.11ID:???例えばモデル的には日付がdateカラムに入ってるんだけど
ユーザーが検索するときはyear:2014とか年号だけ指定して検索できなくて
yearが1970から2015までの値以外ならバリデーションエラーをだしたい時とか
ルールが同じならコントローラー側で動的にバリデーター呼び出すだけで楽なんだけど
>>277
配列なら最後に余計なカンマ入れられるけど
引数は最後に余計なカンマ入れるとエラーになる
0279277
2015/02/16(月) 02:27:00.96ID:vJjLQ3Jtありがとうございます!出来ました!!
0280nobodyさん
2015/02/18(水) 19:23:06.50ID:4aEt4KO0// src/Controller/RecipesController.php
class RecipesController extends AppController
{
public function popular()
{
$popular = $this->Recipes->find('popular');
if (!$this->request->is('requested')) {
$this->response->body(json_encode($popular));
return $this->response;
}
$this->set('popular', $popular);
}
}
の、if (!$this->request->is('requested'))って条件の「!」いらなくない?動かしてみたらやっぱりない方がちゃんと動くし。
ここで言ってもしょうがないんだろうけど、自分の考え方が正しいのか不安だから聞きたかった
0281nobodyさん
2015/02/18(水) 22:49:27.06ID:???0282nobodyさん
2015/02/19(木) 00:34:03.06ID:???0283nobodyさん
2015/02/19(木) 01:12:24.31ID:???0285nobodyさん
2015/02/19(木) 17:29:51.85ID:???コントローラでpaginateを使いたいのですが、
ビューに引き継ぐと、なぜか「order」が効いていません…SQLにも「ORDER BY」が出ていません
インターネットでいろいろ調べて試してみたのですが、結局うまく動かなかったです…
下記名前はダミーですが、こんな感じで書いているのですが、どこがおかしいのでしょうか?
どなたかおわかりの人教えてください><
もし下記だけじゃ情報が足りなかったらご指摘ください
≪コントローラ部分≫
$this->employee->virtualFields['group_age'] = 0;
$this->paginate = array('employee' => array(
'group' => array('employee_age','gender'),
'fields' => array('employee_name','gender','count(employee_name) as employee__group_age'),
'order' => array('employee__name' => 'desc'),
'limit' => 20 ,
));
$data = array('paginate' => $this->paginate('employee') );
$this->set("data",$data);
0286nobodyさん
2015/02/19(木) 20:21:28.79ID:???ごめんなさい
'order' => array('employee__name' => 'desc'),
この部分が、
'order' => array('employee__group_age' => 'desc'),
でした
よろしくお願いします
0287nobodyさん
2015/02/19(木) 22:14:32.35ID:???原因を断定はできないがとりあえず目についたところとしてはバーチャルフィールドの名前あってなくね?
1行目group_age、4,5行目がemployee__group_ageで揺れてんじゃん
あとこの4行目の配列の一要素目 'employee_age'じゃねーの?
Group Byに指定してない列は集計関数かませずにSELECT句にそのまま使えないでしょう
名前ダミーにすんのはいいけど正確に変換してくれよ
0289nobodyさん
2015/02/20(金) 19:16:31.11ID:mKx/fp25生成したHTMLのコード上ではしっかりと
【test.html】
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
と記述しているのですが、ローカルにダウンロードして
サクラエディタで test.html を開くと右下に「SJIS」と表示されてしまいます。
【php側】
$html = {htmlコード;
file_put_contents("test.html", $html);
HTMLを生成しているPHP自体の文字コードも UTF-8 です。
なぜSJISになるのでしょうか?
0290nobodyさん
2015/02/20(金) 22:35:03.17ID:???readmeに従ってつくったけど検索が機能しないです
parsedParams()をvar_dumpしてみると空だし
urlの引数が/id:10/user:hoge/とかの形式じゃなくて
?id=10&user=hogeとかになっちゃってるみたい
バグかなぁ… 英語でググったり何度かソース見返すけどわからないです…
この現象の原因わかる方いますか?
0293289
2015/02/21(土) 14:53:33.16ID:gR4qq4TK0294nobodyさん
2015/02/21(土) 15:38:23.20ID:???0295289
2015/02/21(土) 15:44:22.51ID:gR4qq4TKありがとうございます。
解決しました。
0296nobodyさん
2015/02/22(日) 17:44:38.17ID:???下手にバージョン上げてもバグる原因増えるだけだと思いやってないんだけど。
0297nobodyさん
2015/02/22(日) 19:27:47.08ID:???0298nobodyさん
2015/02/22(日) 21:39:50.80ID:???入力欄が問題なく埋められていた場合、投稿フォームの「投稿」ボタンを押すと、コントローラーのaddが呼ばれてその投稿が追加されindexにリダイレクト、という動きはなんとかできたのですが、
入力欄の入力をバリデーションして不正なものがあった際に、indexのページ内の投稿欄にそのことを示すメッセージを表示するようにする方法がわかりません。
唯一思いついたのは、addのビューを投稿欄のみにしておいて、indexのビュー内からiframeで呼ぶことくらいです。
どなたかご教示頂けると幸いです。
0300nobodyさん
2015/02/23(月) 01:14:35.54ID:???ありがとうございます。調べるうちに、バリデーションエラーの内容をセッションに書き込んでリダイレクト先でセッションから読み出して代入、という方法も見かけたんですがこっちの方がずっとスマートですね。
というか結果的にcakephp関係ない質問になってしまって申し訳ないです。
0302nobodyさん
2015/02/23(月) 12:35:39.33ID:???実は今回やってるものが非常に特殊なケースで、IE6対応も切り捨てられないため、ajaxでやろうとして困っているところでした。
■ このスレッドは過去ログ倉庫に格納されています