【PHP】フレームワーク CakePHP 17ホール目【v2.4】
- 1 :nobodyさん:2014/03/01(土) 17:03:24.57 ID:8AJ9GD6E.net
- 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/
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
※前スレ
http://kohada.2ch.net/test/read.cgi/php/1378659370/
- 935 :nobodyさん:2014/07/13(日) 15:40:00.87 ID:???.net
- そういう場合はテスト環境はステージング環境と言うところもあるね
最近は開発PCのスペックも十分でローカルにVM立ててやることも多いね
- 936 :nobodyさん:2014/07/13(日) 17:11:27.37 ID:???.net
- ローカル→xampp
テスト環境→自分で契約しているサーバ
本番環境→クライアントが契約しているサーバ
- 937 :nobodyさん:2014/07/14(月) 19:33:26.67 ID:???.net
- SOHOでもやってるのか?
- 938 :nobodyさん:2014/07/15(火) 13:33:30.91 ID:???.net
- Paginator->optionsの設定で質問です。
URLが
http://example.com/posts/:category_id/?type=1&area=2
だとして、Paginator->optionsを以下のように指定しました。
(:category_idはルーティング済みだとお考えください)
$this->Paginator->options(array('url' => array('controller' => 'posts', 'action' => 'index', 'category_id' => $category_id), 'convertKeys' => array('type', 'area')));
しかし、$this->Paginator->next()を表示した時のURLが
http://example.com/posts/:category_id/page:2
となっており、URLパラメータのtypeとareaが付いていません。
設定がおかしいのでしょうか?ご存知の方は教えてください。
Cake2.4.10を使用しています。
- 939 :nobodyさん:2014/07/15(火) 20:02:08.57 ID:???.net
- URL に page:2 がついているところを見ると、paramType を querystring にはしていないように思える。
convertKeys は paramType がデフォルトの named の時には何もしないよ。
つまり >>938 が想像している機能じゃない。
こうしたら動くのでは?
$this->Paginator->options(array('url' => array('controller' => 'posts', 'action' => 'index', 'category_id' => $category_id, '?' => $this->request->query)));
- 940 :nobodyさん:2014/07/15(火) 20:05:19.07 ID:???.net
- >>939
ありがとうございます!この方法で動きました
- 941 :nobodyさん:2014/07/15(火) 20:11:55.43 ID:???.net
- どういたしまして
- 942 :nobodyさん:2014/07/16(水) 01:11:04.31 ID:???.net
- HTMLヘルパーに関して教えて下さい。
以下のようにaタグ内にspanが2つ入ったHTMLを出力するには
HTMLヘルパーをどう書けば良いのでしょうか?
<a href ="http://hoge/controller/action/">
<span class="fuga">ABC</span>
<span class="piyo">XYZ</span>
</a>
HTMLのままビューに書くのは無しの方向でお願いします。
- 943 :nobodyさん:2014/07/16(水) 01:38:20.50 ID:???.net
- 第3パラメータ $options = array('escape' => false);
- 944 :nobodyさん:2014/07/16(水) 01:43:34.95 ID:???.net
- <?php
echo $this->Html->link(
$this->Html->tag('span', 'ABC', array('class' => 'fuga')) . PHP_EOL . $this->Html->tag('span', 'XYZ', array('class' => 'piyo'));
array('controller' => 'controller', 'action' => 'action', 'full_base' => true),
array('escape' => false)
);
?>
試してないけどこんな感じか
spanみたいな属性が環境に依存しないタグを複数入れ子にしてまでヘルパーに固執する意味があまりわからん
Well-Formattedなマークアップを確実に出力するメリットよりもHTMLの見通しが悪くなるデメリットが勝るように思える
このHTMLならURLの出力さえヘルパーに面倒見てもらえれば充分じゃね?
- 945 :nobodyさん:2014/07/16(水) 01:52:30.97 ID:???.net
- そうだな。aタグのhrefを<?php echo Router::url('/controller/action');?>
ってな感じにするだけで良いと思う。
- 946 :nobodyさん:2014/07/16(水) 02:18:18.31 ID:???.net
- >>943-944
どうも有り難うございます。
943さんの記述でいけました。
仰る通りここまで記述が長くなると
ヘルパーでの対応はやめた方が良さそうですね。
大変勉強になりました。
- 947 :nobodyさん:2014/07/16(水) 02:36:58.58 ID:???.net
- PHP 5.4でarray()の糖衣構文が使えればヘルパーまみれでも少しは読みやすくなるんじゃないかな
あとは<?php ?>と$thisとechoを一々書かなくて済むと最高なんだが
- 948 :nobodyさん:2014/07/16(水) 02:41:15.08 ID:???.net
- echo はshort_open_tagのONでいけるけど$thisは難しいな
- 949 :nobodyさん:2014/07/16(水) 02:52:19.44 ID:???.net
- その条件をほぼ満たしてるTwigのプラグインなら見かけたことあるけど使ったことはない
https://github.com/WyriHaximus/TwigView
- 950 :nobodyさん:2014/07/16(水) 06:10:15.29 ID:???.net
- 5.4 からは short_open_tag の設定に関わらず echo の短縮構文は常に有効。
$this はヘルパーを変数に入れ直せばほぼ消える。
- 951 :nobodyさん:2014/07/16(水) 08:31:58.76 ID:???.net
- HTMLヘルパーなんて使ったことないな。
何故わざわざ独特の書き方をして自分やHTMLコーダーに不便な思いを強いなくてはならないのか。
- 952 :nobodyさん:2014/07/16(水) 20:50:59.63 ID:???.net
- 新手の質問だよなそれw
素直に聞けば良いものを。。。
- 953 :nobodyさん:2014/07/17(木) 01:55:57.38 ID:4qeUm9n8.net
- >>919
安心しました。外をあまり知らないのでイレギュラーな開発スタイルかと思ってましたw
>>919
本番でNGにならない様に開発環境でおもいっきりテストしています。
もしバグがあった場合には、開発環境で開発&修正をして再び本番環境にスクリプトを展開する様にしています。
>>936
xamp バグが多過ぎない?
- 954 :nobodyさん:2014/07/17(木) 12:22:59.07 ID:???.net
- >>953
Cakeで開発する点においては、バグは感じないよ。
ただし、古いxamppのバージョンなら動作が糞重くなる
- 955 :nobodyさん:2014/07/17(木) 13:12:27.85 ID:???.net
- xamppのバグで困ったことはないが
Windows用のAPCやmemcachedがうまく動かず困ったことはある
バージョンの相性が厳しい
- 956 :nobodyさん:2014/07/17(木) 14:51:38.30 ID:???.net
- xampp ってそんなにバグあるか?
- 957 :nobodyさん:2014/07/17(木) 20:48:19.93 ID:???.net
- xampp俺も好きじゃないな。
linux環境と少し違うから環境整えるのに一苦労。
- 958 :nobodyさん:2014/07/17(木) 23:21:39.62 ID:???.net
- 個別に入れた方が後々いいしね。
どのみち、設定ファイルは触らないとダメなんだし。
- 959 :nobodyさん:2014/07/17(木) 23:23:50.62 ID:???.net
- シェルスクリプトとかcronとか動かねーしな。
もはやExcel開くときしかメリットを感じない。
- 960 :nobodyさん:2014/07/22(火) 11:17:54.78 ID:???.net
- 新しいの来たね。またここの住人さんの指摘かな。感謝感謝。
- 961 :nobodyさん:2014/07/22(火) 23:52:59.82 ID:???.net
- どういたしまして
- 962 :nobodyさん:2014/07/25(金) 03:13:26.91 ID:ZnC0S1uF.net
- cakePHPを使って事前にSQLを実行して作成済みの
ビューを実行するにはどういうコードを書けば良いでしょうか?
例)
hoge_view as (
select test_name , test_id as hoge_table );
この事前作成済みの hoge_view をcakePHP経由で呼び出したいです。
>>956
多過ぎて地道にmysql / php とかインストールしてますよ。
- 963 :nobodyさん:2014/07/25(金) 03:55:22.05 ID:???.net
- >>962
Model::query()
- 964 :nobodyさん:2014/07/25(金) 10:12:13.66 ID:???.net
- ビューのModel作りゃいいだろ
- 965 :nobodyさん:2014/07/25(金) 11:13:14.28 ID:???.net
- それすらわからず、xamppをdisるわけか・・・
- 966 :nobodyさん:2014/07/25(金) 11:41:59.02 ID:Q+uw5XLP.net
- >>963
Viewのモデル作成とかもあるんですね。
- 967 :nobodyさん:2014/07/27(日) 14:03:04.17 ID:akY7lnX2.net
- Cakeのバージョン:2.3だと思います。
2点質問があります。
(1)Authコンポーネントに関して
既存システムで「hoge_users」テーブルに対してauth認証を通す処理があります。
こちらに「fuga_users」テーブルに対してauth認証を通す処理を作成したいです。
ログインページは双方で別にしたいため、コントローラーも別になります。
既存処理はAppControllerでauth認証の設定をしているため、そこで分岐させれば
うまくいくのかと思ったのですがどうも上手くいきません。
上記のようなことを実現させるためには、どのような方法を取ればいいのでしょうか?
(2)webroot配下の静的ページに関して
例えばTestコントローラのresultアクションとしてあるURLの配下に
http://www.sample.com/Test/result/hoge.html
このように静的ページを配置したいと考えています。
URLも変更したくないため、極端な話 webroot/Test/result/ ディレクトリが
作成できればいいのですが、Cakeのルール?に即していないからか
http://www.sample.com/Test/result/hoge.html→表示される
http://www.sample.com/Test/result/→表示されなくなる
という状況になってしまいます。
こちらを上手く解決する方法があれば教えて頂けないでしょうか?
宜しくお願い致します。
- 968 :nobodyさん:2014/07/27(日) 15:18:41.97 ID:???.net
- composer使う場合、update時に対象外ファイルとか設定出来ませんか?
configファイルまでupdateされて困ってます。
- 969 :nobodyさん:2014/07/27(日) 18:07:31.12 ID:???.net
- >>968
saveの時に第三パラメーターで更新するカラムを指定すればいいよ
- 970 :nobodyさん:2014/07/29(火) 23:52:01.63 ID:???.net
- cakephp2.5.1をnginxの環境で試運転してるんだけど、
トップページをToppagescontrollerで運用していて、
routes.phpでRouter::connect('', array('controller' => 'Toppages', 'action' => 'index', 'home'));
とやっています。
FirefoxやIEでは正常に動作しますが、Chromeだけはなぜか
トップページが表示されず、https://github.com/cakephp/cakephp/blob/17ae40f0ce616edbbaa4f9b2381988f508b7cbfd/lib/Cake/Console/Templates/skel/webroot/index.php
と同じ内容の生PHPファイルがダウンロードされます。
誰か解決方法分かる人いますか?
- 971 :nobodyさん:2014/07/30(水) 00:39:00.62 ID:???.net
- リダイレクトキャッシュが働いてるだけじゃねぇ?
別環境の Chrome はどうなん?
- 972 :969:2014/07/30(水) 20:23:16.04 ID:???.net
- >>971
ありがとうございました。
リダイレクトキャッシュが働いてたみたいです。
chromeの履歴削除と、再発防止に該当コントローラーに
$this->response->cache('-1 minute', '10 minutes');
を追加しました。
- 973 :nobodyさん:2014/08/01(金) 01:47:52.34 ID:IViy/2On.net
- スレ違いかもしれませんが、JavaScriptスレが過疎っているのでここで質問させてください。
textareaの中が次の様な値が入っているとします。
AAA{改行}
BBB{改行}
CCC{改行}
{改行}
↓ となっているのを、末尾の改行だけを削除する
AAA{改行}
BBB{改行}
CCC{改行}
にはどういうコードを記述すれば良いでしょうか?
- 974 :nobodyさん:2014/08/01(金) 02:11:43.96 ID:???.net
- CakePHP関係あるの?
PHPの質問なのかJavaScriptの質問なのかすらわからない。
それはそれとして考え方としては、文字列の最後に改行コードが2つ連続してるか
どうかを判定して、それが真なら文字列末尾を削ればいいんじゃない?
- 975 :nobodyさん:2014/08/01(金) 02:59:26.93 ID:???.net
- >>973
var textarea = 'AAA¥nBBB¥nCCC¥n¥n';
var new_testarea = textarea.replace("¥n¥n","¥n");
alert(new_testarea);
¥は半角に直せ。あと、Javascriptの質問はWeb制作板に行け。
お前は質問する板を間違えているだけだ。
- 976 :nobodyさん:2014/08/01(金) 03:38:52.05 ID:HDhLII9a.net
- https://www.youtube.com/my_videos?o=U
- 977 :nobodyさん:2014/08/01(金) 04:13:53.79 ID:???.net
- HABTMで使ってる中間テーブルのフィールドでソートする事ってできんのかな。
中間テーブルには結合に必要な情報以外含めちゃ駄目なのか?
- 978 :nobodyさん:2014/08/01(金) 04:17:08.37 ID:???.net
- >>975
これ以上はスレ違いなので続けないけど、その書き方だと
文末じゃなく途中に空行があったときにそっちにhitしちゃう。
- 979 :976:2014/08/01(金) 05:27:15.04 ID:???.net
- 結局afterFindでどうにかしたわ
- 980 :nobodyさん:2014/08/01(金) 12:30:54.30 ID:???.net
- >>978
良いんだよ。例題が例題なんだし。
- 981 :nobodyさん:2014/08/01(金) 13:38:20.68 ID:???.net
- >>977
それはやらないほうが良いと公式でも言ってるよ。
替わりに hasManyThrough を使う。
http://book.cakephp.org/2.0/ja/models/associations-linking-models-together.html#hasmany-through
つまりただ単に、主 hasMany 中間 belongsTo 従属 ってことだ。
- 982 :nobodyさん:2014/08/01(金) 15:29:47.99 ID:???.net
- >>981
Thx!
- 983 :nobodyさん:2014/08/03(日) 00:28:06.38 ID:iSh91Ahhw
- ttp://old-journal.sooey.com/2008/03/26/717/
これ何度読んでも最後から二番目の例がよく分からんのだけど、
$posts = $this->Post->find($options[0], $options);
ってなんでfindの二番目の引数に$options全部渡してんの?$options[1]じゃ駄目なん?
あとここだけfunction index() なのもよく分からん。public外す理由は?
- 984 :nobodyさん:2015/01/10(土) 11:41:23.56 ID:uqtqFgbzE
- 質問です。
cakephpの勉強を始めたんですが
viewの記述が物凄く長くなりませんか?
HTMLヘルパーをコントローラで使ってはいけないということなんですが
DB情報の1項目で
>>944さんの記述のようにすごく長くなります。
分担作業が出来るということでMVCいいらしいんですが
どのファイルをページデザイナーさんに渡すんですか?
240 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★