[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/09 18:15 / Filesize : 230 KB / Number-of Response : 996
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】フレームワーク CakePHP 13ホール目【v2.0】



1 名前:nobodyさん mailto:sage [2011/11/09(水) 01:05:10.60 ID:???]
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

■本家
www.cakephp.org/
APIドキュメント
api.cakephp.org/
the Bakery
bakery.cakephp.org/
CakeQs
cakeqs.org/
CheatSheet (PDF)
cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
github.com/cakephp

■日本語公式
cakephp.jp/
フォーラム
cakephp.jp/modules/newbb/
cookbook(マニュアル)
book.cakephp.org/ja

前スレ
【PHP】フレームワーク CakePHP 12ホール目【笑】
hibari.2ch.net/test/read.cgi/php/1309505626/

914 名前:nobodyさん mailto:sage [2012/04/12(木) 12:04:20.30 ID:???]
cakePHPでは一般的に共通で使用されるファンクションは
どこに定義しますか?

パスを教えてください。
Utility的な自己ライブラリを定義したいと考えています。

915 名前:nobodyさん mailto:sage [2012/04/12(木) 12:18:39.89 ID:???]
ファンクション群ならbootstrapじゃね
外部にしてincludeか

916 名前:905 mailto:sage [2012/04/12(木) 13:56:49.96 ID:???]
>>906>>911

私も管理画面に会員情報を編集できるページを作っていたのですが、
管理画面から対象の会員としてログインし、
会員情報の修正をしている市販CMSを結構見るんです。

たぶん、同じような箇所を管理画面用・会員用と分けて作るのは
手間がかかるからログインし直すという事で対処していると思うのですが、
あまり良いやり方ではないみたいですね。

917 名前:nobodyさん mailto:sage [2012/04/12(木) 18:05:37.36 ID:???]
成りすましをしているようで変態的

918 名前:nobodyさん mailto:sage [2012/04/13(金) 01:19:58.45 ID:???]
>>914
vendorにライブラリとして突っ込む

>>916
ユーザーが実行できる範囲の行動を管理者が行うという前提であれば
手抜きの方法としてナシではないのかもしれないけど、スマートでないのは確か
というかユーザーが修正できるんならユーザーに修正させるべきじゃね?
管理者がユーザーの設定代行するって言うのはかなりの最終手段のような気がする

919 名前:nobodyさん mailto:sage [2012/04/13(金) 14:04:43.06 ID:???]
Cakephp のメソッド引数として全角文字列を入れて動かしているのですが、
なぜかIEでだけ、動きません。

hostname.jp/controller/action/全角の検索ワード

という感じのアクションなのですが、Chromeでは問題なく動いているのですが、
IE系のブラウザではまったく動いてくれません。検索ワードが半角文字だけですと、IEでも動いています。

そもそもCakeのメソッド引数に上記の方法で全角文字列を渡してもいいものなのでしょうか?
なにか別にいい策があればご教示ください。

920 名前:nobodyさん mailto:sage [2012/04/13(金) 14:52:39.24 ID:???]
全角?
古臭い用語だな

921 名前:nobodyさん mailto:sage [2012/04/13(金) 15:01:55.33 ID:???]
>>920
マルチバイト文字のことです。正確にはUTF-8の日本語文字列です。

922 名前:nobodyさん mailto:sage [2012/04/14(土) 00:10:19.08 ID:???]
>>919
Cakeとか関係ない。

UTF-8で書かれたページでPOSTしたら
サーバーに投げられる文字コード何か?

EUC-JPで書かれたページでPOSTしたら
サーバーに投げられる文字コード何か?

この2つの例でサーバーに投げられ文字コードは何で決まるのか?

hostname.jp/controller/action/全角の検索ワード
の「全角の検索ワード 」の部分の文字コードはどうやって決めるのが正しいか

考えてみれば良い。



923 名前:nobodyさん mailto:sage [2012/04/14(土) 09:35:05.93 ID:???]
文字コードも関係ないwww


924 名前:nobodyさん mailto:sage [2012/04/14(土) 10:00:41.58 ID:???]
URLエンコード

925 名前:nobodyさん mailto:sage [2012/04/14(土) 10:52:00.00 ID:???]
アホか。URLエンコード するときの
文字コードは何だよ。言ってみろ

926 名前:nobodyさん mailto:sage [2012/04/14(土) 12:26:15.35 ID:???]
cakePHP2.1.1を使用してコントローラの中からモデル内に定義した
ファンクションをコールしようとしているのですが
下記の様なエラーが出てしまいます。
どこに間違いがあるのでしょうか?

[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

927 名前:nobodyさん mailto:sage [2012/04/14(土) 13:43:48.92 ID:???]
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


928 名前:nobodyさん mailto:sage [2012/04/14(土) 13:50:12.49 ID:???]
エラーメッセージを繰り返したら誰かが答えるとでも?

929 名前:nobodyさん mailto:sage [2012/04/14(土) 14:11:27.02 ID:???]
>>926>>927 は別人だろうが。
>>928お前はミサイルで頭を破壊した方がいいよ。どうせまともなルックスしていない下種野郎だろうしな。

930 名前:nobodyさん mailto:sage [2012/04/14(土) 15:09:22.75 ID:???]
で?それが質問者の態度?

931 名前:nobodyさん mailto:sage [2012/04/14(土) 18:06:38.12 ID:???]
cakePHP で特定のコントローラ

例)
denyController.php


へのアクセスを禁止するには一般的にどうしますか?

.htaccess or cakePHPでなにがしかの設定が可能?



932 名前:nobodyさん mailto:sage [2012/04/14(土) 18:42:11.68 ID:???]
cakePHPでdeleteAllに削除条件を指定しても無効なのでしょうか?
下記コードを実行すると、全レコードが削除されてしまいます><;

$deleteCondition = array("hoge_id" => 3333);
$this->Hoge->deleteAll( $deleteCondition );



933 名前:nobodyさん mailto:sage [2012/04/14(土) 18:52:06.84 ID:???]
>>932
条件の与え方はfindと同じだよ。
その条件でfindしたら検索されるの?


934 名前:nobodyさん [2012/04/14(土) 19:34:52.76 ID:V2giXwsG]
>>931
俺ならコントローラー全てのアクションにprefixつけてprefixルーティング&アクセス制御って感じかな

935 名前:nobodyさん mailto:sage [2012/04/14(土) 19:38:18.38 ID:???]
>>933
自己解決しました。

英語のドキュメントを見たところ
cake2.1.1 になってから呼出し方が微妙に変わっていました。

936 名前:nobodyさん mailto:sage [2012/04/14(土) 19:55:02.70 ID:???]
>>935
一応、どう変わったのか書いてほしいな

937 名前:nobodyさん mailto:sage [2012/04/14(土) 20:25:02.13 ID:???]
>>936
実際には delete は変わってませんでした。

findについては、

findAll → find('all')

といった感じです。
しかし、なぜ同じコードで>>932が今度は正常に削除出来たか不明。

938 名前:nobodyさん mailto:sage [2012/04/14(土) 20:33:32.07 ID:???]
controllersの下にサブフォルダを作ってコントローラーを置くと認識されますが、view以下で同じことをやるとエラーになります。
viewsのパスを任意に追加するにはどうすればいいのでしょうか?
ソース見たらApp::path('views')でパスは取れるみたいだけど追加の関数がない。

939 名前:nobodyさん mailto:sage [2012/04/15(日) 02:11:36.29 ID:???]
なれると cakePHP むっちゃ便利やんかぁ。

940 名前:nobodyさん mailto:sage [2012/04/15(日) 08:46:03.26 ID:???]
cakePHP と Pear って一緒に使える?

941 名前:nobodyさん mailto:sage [2012/04/15(日) 19:57:59.30 ID:???]
はい

942 名前:nobodyさん mailto:sage [2012/04/15(日) 20:19:36.67 ID:???]
cakePHP で 
hogehoge.com?age=17
じゃなくて
hogehoge.com/age/17


として処理を行うにはどうしたら良いでしょうか?




943 名前:nobodyさん mailto:sage [2012/04/15(日) 20:27:24.52 ID:???]
>>942
ブログチュートリアルでもやればやり方わかるだろう

944 名前:nobodyさん mailto:sage [2012/04/16(月) 13:39:36.79 ID:???]
cakePHP(2.1.1) で AController / Hoge() 内の処理で 


AController / Hage()

BController / Chabin()

を呼び出すにはどうすれば良いでしょうか?

945 名前:nobodyさん mailto:sage [2012/04/16(月) 13:50:55.75 ID:???]
>>944
異なるコントローラ間で同じ処理をやらせないなら、コンポーネントを使うといい。

946 名前:nobodyさん mailto:sage [2012/04/16(月) 14:00:58.75 ID:???]
>>945
ありがとうございます。
どうしても重複処理があり使いまわしたと思ってました。

947 名前:nobodyさん mailto:sage [2012/04/16(月) 19:03:36.34 ID:???]
cake2.1.1(サクラ) でcronでcakePHPを実行させる為に、まずコマンドラインから
正常にキック出来る事の確認をしているのですがうまくいきません。

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}


948 名前:nobodyさん mailto:sage [2012/04/16(月) 23:25:38.33 ID:???]
>>947
ドキュメントをよめ

949 名前:nobodyさん mailto:sage [2012/04/19(木) 01:38:53.63 ID:???]
cakePHP ってなんでこんなに便利なんだ。楽しすぎる

950 名前:nobodyさん [2012/04/19(木) 16:26:48.17 ID:GZ2gdGu2]
ログイン認証とかの制御をいれたいんですけど
お勧めの方法はありますか?


951 名前:nobodyさん mailto:sage [2012/04/19(木) 17:13:57.30 ID:???]
Auth使えば

952 名前:nobodyさん mailto:sage [2012/04/19(木) 17:14:15.72 ID:???]
Authコンポーネント



953 名前:nobodyさん mailto:sage [2012/04/19(木) 17:29:14.82 ID:???]
良く使用する変数(サイトのURLなど)をDBで管理して
設定ファイルに出力したいのですが、良い方法は無いでしょうか?

考えたのは、モデルキャッシュして設定ファイルが必要な時に
そのキャッシュを読み込むパターンです。


954 名前:nobodyさん mailto:sage [2012/04/19(木) 19:06:23.24 ID:???]
>>953
bootstrap.phpでDBから設定データを読み込んでConfigure::Storeでキャッシュ。
…でもいいんだけど、
Cake2からは ConfigReaderInterfaceっつうのがついたからね。
Readerを書けばモデルから直接Configureに読み込むができるようになった。
Configureファイルに書いた時と同じようにConfigure::read()でどこでも読めるから便利よ

955 名前:nobodyさん mailto:sage [2012/04/19(木) 21:31:47.54 ID:???]
あと、Sanitize::escape() でサニタイズしたデータを復元するときって
みなさんどんな感じでやってますか?

956 名前:nobodyさん mailto:sage [2012/04/19(木) 22:16:25.42 ID:???]
サニタイズいうな

957 名前:nobodyさん mailto:sage [2012/04/19(木) 22:18:18.29 ID:???]
サニタイズ時々

958 名前:nobodyさん mailto:sage [2012/04/20(金) 00:36:04.30 ID:???]
>>956
本当はなんていうの?
マジレス希望。

959 名前:nobodyさん mailto:sage [2012/04/20(金) 00:54:10.36 ID:???]
サニタイズが正しいよ

verbだからな。


>>958

つまり >>956 は英語が出来ないばか

960 名前:nobodyさん mailto:sage [2012/04/20(金) 01:41:15.34 ID:???]
>>951 >>952
ありがとう

961 名前:nobodyさん mailto:sage [2012/04/20(金) 04:26:48.64 ID:???]
サニタイズ言うなを知らない方が馬鹿

962 名前:nobodyさん mailto:sage [2012/04/20(金) 11:16:59.61 ID:???]
英語の出来ない >>961はもっとバカ



963 名前:nobodyさん [2012/04/20(金) 12:22:03.72 ID:PezrE8Wt]
うんごぶりぶりんこ!!!!ドビュビュビュビュドバババババブッ!!!
ドリュルリュルウリュリィブブブブブブッッ!!!!あへあへうんこまん!!!ぶりっちょ!!!
ケツの穴からドババババババババッバwwwwwwwwwwwwWWWW
wwwwwwwwwwww
WWWwwwwwwwwwww??? ? ? ? ? ? ? ????? ????????wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
なお、まにあわんもよう

964 名前:nobodyさん mailto:sage [2012/04/20(金) 12:25:44.92 ID:???]
↑サニタイズよろしく

965 名前:nobodyさん mailto:sage [2012/04/20(金) 12:32:52.78 ID:???]
アホが露呈して ファビョル >>963
 低能乙w

いまどき英語なんて小学生でもペラペラなのにwww

966 名前:nobodyさん mailto:sage [2012/04/20(金) 13:43:18.88 ID:???]
>>954
1.3系使ってるので、Configure::storeを使うパターンで行きます。
これってfindした配列を保存して、loadで読み込んでreadで参照
出来るから便利ですよね。参考になりました。ありがとうございます。

967 名前:nobodyさん mailto:sage [2012/04/20(金) 23:58:00.96 ID:???]
俺がバカなら、お前もバカぁ〜
バカを承知でなぜ惚れた〜

968 名前:nobodyさん mailto:sage [2012/04/21(土) 11:00:21.04 ID:???]
cakeでは当たり前だと思うのですが、
example.com/aboutとかexample.com/sitemap
というようにアクション名だけ指定したい場合、
ルーティングでアクション名を追加する必要がありますよね?

example.com/のコントローラがhomeであり、
/views/home/内にアクション用のファイルがあれば
routes.phpに記載しなくてもアクション名だけで
アクセスできないかと思い、質問しました。


969 名前:nobodyさん mailto:sage [2012/04/21(土) 14:00:03.01 ID:???]
>>968
一行書くことになるけど
Router::connect('/:action', array('controller' => 'home'));
とかでいけるんじゃない


970 名前:nobodyさん mailto:sage [2012/04/21(土) 14:43:21.86 ID:???]
>>969
この方法だと、コントローラにアクションを追加しないとアクセスできません。
pagesを使うように、アクション名を書かずにビューファイルを追加するだけで
アクセスできるようにしたいのですが・・・

971 名前:nobodyさん mailto:sage [2012/04/21(土) 17:21:29.95 ID:???]
リモートデバッグについて質問なんですけど

Eclipseでレンタルサーバ上に展開したPHPファイルを
ローカルのEclipseにてデバッグ実行って出来ますか?
※ブレークポイントが正常に止まるか。

972 名前:nobodyさん mailto:sage [2012/04/21(土) 22:21:07.57 ID:???]
>>970
アクション追加せずにビューだけ表示したいのならpagesでいいんじゃないの?
アクションが無いのだから特定のコントローラーを介する理由も無いし
Router::connect('/*', array('controller' => 'pages', 'action' => 'display'));




973 名前:nobodyさん [2012/04/22(日) 10:29:18.10 ID:L2FF/0Tg]
>>971
リモートデバッグは、サーバー側のデバッグ用ポートにコネクトしてする感じ
そのレンタルサーバとやらに聞いてみて、デバッグ用ポートが開いていないのなら無理

まぁ、普通のレンタルサーバでデバッグポート開いている事はたぶん無いんじゃないかな

974 名前:nobodyさん mailto:sage [2012/04/22(日) 11:01:45.48 ID:???]
>>973
ありがとうございます。
鯖屋に確認してみます。

ローカル環境に開発環境を作ると重たいので
全てレンタルサーバ上でやりたいなぁー、なんて考えてました。

975 名前:nobodyさん [2012/04/22(日) 11:32:49.43 ID:L2FF/0Tg]
>>ローカル環境に開発環境を作ると重たいので
重いのはたぶんEclipseだよ
他のエディタとか使う事あるのなら、XAMPP+エディタで試してみるといい
ただ、GUIのデバッグ環境は無いと思うが。

976 名前:nobodyさん mailto:sage [2012/04/22(日) 15:41:01.67 ID:???]
debugレベルを 0 にしても
適当なURLを入力すると次の様にサイトがcakePHPを使用している事がわかる様な
エラーメッセージが出てしまいます。

これを消す方法とかってありますか?

CakePHP: the rapid development php framework


977 名前:nobodyさん mailto:sage [2012/04/22(日) 15:57:27.32 ID:???]
バカはしね

978 名前:nobodyさん mailto:sage [2012/04/22(日) 18:19:37.02 ID:???]
>>976
default.ctpとかテンプレートのどっかに書かれてるんだろ
どこから出力されてるか突き止めてそれを消せ

979 名前:nobodyさん mailto:sage [2012/04/22(日) 19:19:39.84 ID:???]
今どきデバッガの力を借りないとデバッグできないなんて

980 名前:nobodyさん mailto:sage [2012/04/22(日) 19:53:54.59 ID:???]
デバッガすら使えない誰かさん >>979w

981 名前:nobodyさん mailto:sage [2012/04/22(日) 20:33:38.25 ID:???]
HTMLでいうと

<li><input type="checkbox" name="data[Post][]"></li>
<li><input type="checkbox" name="data[Post][]"></li>
<li><input type="checkbox" name="data[Post][]"></li>

みたいな出力にしたい時、フォームヘルパーを使って出来ますか?

982 名前:nobodyさん [2012/04/23(月) 16:08:34.29 ID:3JcMmxsm]
cakePHPでブラウザからアクセスがあった場合に
次の様に解釈させ、処理を実現をしたいのですがどうすれば良いでしょうか?

@アクセスされる際のURL
unnko.com/prin/food/rice/333

@Controllerに定義した内容
class PrinController extends AppController
{
 function food($menu,$id)
 {
echo $menu."<br>"; // ← rice を表示したい。
echo $id."<br>; // ← 333 を表示したい。
 }
}




983 名前:nobodyさん mailto:sage [2012/04/23(月) 16:13:23.70 ID:???]
バカはしね

984 名前:nobodyさん mailto:sage [2012/04/23(月) 17:14:29.71 ID:???]
いつものウンコ野郎はスルー
頭の中にウンコがぎっしり詰まってるんだろ

985 名前:nobodyさん mailto:sage [2012/04/23(月) 20:52:22.44 ID:???]
Lithium安定版でねーなぁ

986 名前:nobodyさん mailto:sage [2012/04/23(月) 22:52:36.10 ID:???]
>>982
それで実現できてないか?

987 名前:nobodyさん mailto:sage [2012/04/24(火) 11:09:19.41 ID:???]
>>981
<li>$this->Form->checkbox('post.xxx');</li>

988 名前:nobodyさん mailto:sage [2012/04/24(火) 11:12:03.63 ID:???]
モデルでクッキーを読みに行きたい場合、皆どうしてる?

DB登録時に、クッキーからログインユーザーの情報吸い上げて登録しにいくフローって多くない?
モデル内でApp::usesでクッキーコンポーネント呼ぶのは邪道?

989 名前:nobodyさん mailto:sage [2012/04/24(火) 11:24:40.31 ID:???]
モデルでくっきーを読もうってのがそもそも設計としてゴキブリレベル

990 名前:nobodyさん mailto:sage [2012/04/24(火) 11:28:43.67 ID:???]
いや蛆虫だろう

991 名前:nobodyさん mailto:sage [2012/04/24(火) 11:58:40.78 ID:???]
ああ、そうやっぱモデルでクッキー読むのは邪道なのね。サンクス

992 名前:nobodyさん mailto:sage [2012/04/24(火) 11:59:56.14 ID:???]
>>982
View フォルダの下にPrinフォルダつくってfood.ctp作ったか?



993 名前:nobodyさん mailto:sage [2012/04/24(火) 12:59:47.43 ID:???]
>>992
Thank you!


994 名前:981 mailto:sage [2012/04/24(火) 14:05:37.49 ID:???]
↓こんな感じでやってみたのですが、エラー時など同じビューを表示した時、
チェックした項目がチェックされていません。どうすればいいのでしょうか?

<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>

995 名前:nobodyさん mailto:sage [2012/04/24(火) 15:11:46.26 ID:???]
2.0のAuthがsessionKeyをself::$sessionKeyとしてるもんだから
コントローラーからモデル名に変えようにも
$this->Auth->sessionKey = 'Auth.Hoge';
じゃだめで
AuthComponent::$sessionKey = 'Auth.Hoge';
って市内とダメなんだけどそもそもいじっちゃマズイのかな?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef