トップページ⇒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/
0413nobodyさん2015/04/06(月) 12:01:41.30ID:???
joinsで直接結合すると、afterFindって効かないんですね。(Cake2系で)
プライマリーキー以外で結合する必要があるから
アソシエーションじゃなくてjoinsに書いてるけど、その点だけが困る。
0414nobodyさん2015/04/06(月) 21:23:28.83ID:???
>>413
updateallするんでなければpkeyを動的に切り替えた方が楽だよ
0415nobodyさん2015/04/06(月) 21:52:45.80ID:???
>>414
結合させるモデルの両方共プライマリーキーじゃないんです。
なので、動的切替は無理かと。
0416nobodyさん2015/04/07(火) 21:18:58.02ID:???
>>415
いけるいける
primarykeyとforeignkey切り替えれば
まあ素直にjoinした方が見通しいいかもしれないけど
0417nobodyさん2015/04/08(水) 10:25:46.98ID:???
>>416
どうやっていけますか?

User→Profile
User→Bbs
Bbs→Entry

というモデル設計で、BbsとEntryをhasOneで繋ぎつつ、
Bbsのuser_idとProfileのuser_idを結合したいのですが。
0418nobodyさん2015/04/08(水) 22:50:18.86ID:???
>>417
そういう構成なら直接結合しないでUser経由して結合した方がいいよ
深い結合については>>340あたりを参照
0419nobodyさん2015/04/09(木) 00:21:50.88ID:???
>>418
分かりました。難しいですが勉強します。ありがとうございました。
0420nobodyさん2015/04/09(木) 00:40:19.67ID:???
>>418
413=415=417=419ですが自己レスです。
joinsを使ってもUser経由で結合してもそんなにSQLの回数は変わりませんね。
強いて言うなら、$data['User']['Profile']['name'];
みたいに多次元配列になるのが煩わしいだけでしょうか。
joinsの場合は、$data['Profile']で書けますが。

よほど深い階層になる場合や複雑なSQLでない限り、
極力、joinsは使わないようにします。色々と教えていただきありがとうございました。
0421nobodyさん2015/04/09(木) 01:19:01.76ID:???
414,416,418ですがいくらなんでも行動と理解が早すぎると思いました
0422nobodyさん2015/04/09(木) 14:29:29.47ID:???
多重配列になるのが嫌なら、それこそafterFindで調節する手もあるな。
どちらにしろフレームワーク使うんだから、後々修正しやすい方がいい
0423nobodyさん2015/04/13(月) 14:41:46.28ID:kiqQUtSe
会員専用ページ(マイページ)の設計について悩んでいます。

core.phpのprefixにmypageを追加して、会員専用の処理がある場合は、
該当のコントローラーで、アクション名にmypageを付けて処理する。

例)会員情報の変更
/mypage/users/edit →UsersControllerにmypage_editを追加
例)会員が投稿した日記を編集
/mypage/diaries/edit/1 →DiariesControllerにmypage_editを追加
例)会員ではない人が日記を閲覧
/diaries/detail/1 →DiariesControllerにmypage_detailを追加

という考えで良いのでしょうか?
URLはrotes.phpに指定すればいかようにも変えられるというのは分かるのですが、
出来るだけCake利用者がやっている、ベターな方法を追求したいと思っています。

それがprefixを使う方法なのか、MypageControllerを作る方法か、routesのみで切り替えるのか
どれが良いか悩みますので、作り方に法則のようなものがあれば教えて下さい。
0424nobodyさん2015/04/13(月) 22:48:51.65ID:???
>>423
editとかのページはauthコンポーネントのallow使って制御した方がいい
detailをprefixで振り分けてるのは悪くはないけどそこまで表示内容に違いがないのならprefix使うまでも無い気がする
0425nobodyさん2015/04/14(火) 11:10:39.83ID:???
>>424
つまり、わざわざmypageというprefixやコントローラーを作るのではなく、
各アクションにアクセス制限(authのallow)をするだけでいい

ってことですかね?それが一般的ならそうしますが、
どうもログイン後のページって、adminとかmypageを付けるような気がするんです。
決まりがあるわけじゃないでしょうが、ググってもそういう情報が多くて・・・
0426nobodyさん2015/04/14(火) 11:13:26.07ID:???
あと、>>423の以下の例は間違いでした。

例)会員ではない人が日記を閲覧
/diaries/detail/1 →DiariesControllerにmypage_detailを追加
↓
/diaries/detail/1 →DiariesControllerにdetailを追加
(誰でも閲覧できるから、prefix必要ないです)
0427nobodyさん2015/04/14(火) 22:26:08.70ID:???
>>425
規模が大きくなるのならログイン必須であることを明示するためにもprefixあった方がいいかもだけど
一人で小規模でやるなら分けるほどでもない
0428nobodyさん2015/04/14(火) 23:14:54.67ID:???
>>427
どの程度が「規模が大きい」から図りかねるのですが、
モデルが50ぐらいあるなら大きいって認識でいいですかね?
前述した通り、「一般的なベターなやり方」を教えて欲しいのですが・・・
0429nobodyさん2015/04/14(火) 23:40:26.26ID:???
>>428
モデルというよりコントローラーの数によるだろうけど、それだけでかけりゃ分けた方がいいよ

一般的にベターとか言われも、例えば規模が本当に小さければcakephpなんて使わずに
phpの1ファイルで実装した方がいい場合もあるわけだし
規模感無視して一般的な話をしようとしても無理だよ
0430nobodyさん2015/04/15(水) 00:06:47.65ID:???
今、cakeを勉強中なのですが、他のフレームワークを今まで使ったことがないのでわからないので検討違いかもしれないですが、
cakeのモデルって使い勝手悪いのですが、これがフレームワークでは普通なのでしょうか?
アソシエーション定義してもrecursiveの深さを検索するとかこんなもの使い道あるのでしょうか?
テーブルにただマッピングされてるだけのsql発行クラス以上の使い方があるのでしょうか?
っていうか、このモデルというのは使い勝手がいいのですか?
0431nobodyさん2015/04/15(水) 00:22:06.23ID:???
>>430がRDBMSさえも理解してない素人なのか自前でORマッパーを作りかねない玄人なのか判断つきかねる
0432nobodyさん2015/04/15(水) 00:30:30.11ID:???
>>429
フレームワーク使うのに、小規模ってことは無いと思うんです。
例えば「お問い合わせフォーム作りたいから使おう」とか「会社紹介ページ作りたいから使おう」
ってレベルの人がフレームワークに立ち寄らないと思うんです。

それより規模がでかくて数々のプラグインや便利ツール(ヘルパー・コンポーネント等)
があるからフレームワークを使おうと思うわけで。

そしてもうひとつの利点である「開発方法を定める」ってのもあると思うんです。
命名規則やMVCの考え方など、1人でやってたらその都度変わりそうな要件も
フレームワークを使うことで統一する事が出来るし、それは後の改修のしやすさに繋がる。

だからこそ「一般的でベターな方法を追求する」事ってメリットがあると思うんですよ。
そこにメリットが無かったり、「人それぞれじゃね?」ってなると、
それこそオレオレフレームワークと変わらない気がします。

>>430がフレームワークを使おうと思ったキッカケも、
「自分一人の考えで済ませたくないから」じゃないですかね。
そして過去の自分の経験・考えがあるからこそ、
「Cakeのモデル定義は使い勝手が悪い」という判断ができるわけで。

だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。
0433nobodyさん2015/04/15(水) 00:47:12.63ID:???
レンタルサーバでFTP接続しか受け付けないサーバに
TeraTermで接続するにはどうすれば良いでしょうか?
0434nobodyさん2015/04/15(水) 00:57:56.92ID:???
>>431
sqlもおぼつかないど素人です。

>>432
>だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。

そうですね、なにか他人と共有できるものを獲得できるようにフレームワークで一番最初に引っかかったものいじってみたしだいです。


よくわからないので、とりあえず青い鳥を探してがんばってみることにします。
ありがとうございました。
0435nobodyさん2015/04/15(水) 01:03:19.42ID:???
>>432
いわんとすることはわかるけど、cakeでもコントローラー10個以下の小規模なものと
コントローラー100個以上の大規模なものでは、cakeという規約の上でも開発ポリシーは変わるよ
もちろん参加メンバーの多寡でも変わる

たとえばcakeはキャッシュ先をファイルとapcとmemcacheとredisに対応してるけど、
決してデフォルト設定のファイルキャッシュが多くの場合にベターな手段であるということではない
最終的に自分の案件でなにを使うか決めるのはやはりそれぞれの開発者だよ
0436nobodyさん2015/04/15(水) 01:16:06.96ID:???
>>435
フレームワークを使わない場合、
ファイル管理は主にフォルダ分けで対応していたと思うんです。
そのフォルダ分けがコントローラー分けに変わっただけで。

でも、コントローラーを分ける理由てファイルが肥大化して読みにくくなるからで、
1コントローラー1アクションを実行するCakeの場合、
パフォーマンスに大きく影響はでないと思います。

ただ、その「ファイルが読みにくくなる」というのは開発効率の面で大きな問題ですし、
バグのリスクが高まるなら、素直にファイルを分けたり、
プラグイン化するのも大事だと思います。

その、「どれぐらいの量に達したらこうするべき」って指標があれば良いんですけどね。
それはあくまで要件次第って事が難しくさせるんです。

基本的に誰しも最初は小規模の物を作るだろうし、
継続して運営していくようなものなら後から機能を追加して大きくなっていくと思うし。

とりあえず、会員専用ページのURLやコントローラー構成に「こうするべき」
という指標はないということで納得する事にします。色々とありがとうございました。
0437nobodyさん2015/04/15(水) 02:03:20.77ID:???
「sqlもおぼつかないど素人」を自称する430が、
Cakeのモデルを「使い勝手が悪い」と評価した理由や経緯に
興味があるんだけれど。差し支えなければ教えて欲しい。
0438nobodyさん2015/04/15(水) 03:26:27.37ID:???
>>437
findで帰ってくる連想配列が使いづらい
モデルのhasManyでつながってるモデルのさらにhasManyを取得するのがrecursiveで階層指定する以外、ドキュメントに見当たらない。
とか

まだ、勉強段階で自分が勘違いしてるかもしれんが、使い勝手がいいとは。。。
0439nobodyさん2015/04/15(水) 08:07:14.49ID:???
>>438
findの返り値はcakephp3からオブジェクトになったはず
俺はpdoで返ってくる値とどちらも大して違わないと思うけど、
cakephp2の配列は良くも悪くもphp的だね

recursiveが扱いにくいのは事実で、基本的にはcontainableを使う方がいい
04404372015/04/15(水) 13:46:41.43ID:???
>>438
回答ありがとう。「モデルの使い勝手が悪い」にはそもそも同意していて、
初心者の観点だとどのへんが辛いと感じるのかなと思ったので。

Cake2でのモデルを扱うには、Containable と Hash を活用するようにすれば
少しは辛さは軽減できると思うけれど、何というかどちらもいわゆるバッド
ノウハウの類であって、本質的な辛さを解決するものではないし、だからこそ
Cake3では、エンティティオブジェクトを返すようになり、Containable /
recursive / afterFind / virtualfield などがなくなってしまったんだと思う。
0441nobodyさん2015/04/15(水) 16:25:28.65ID:???
海外サーバ上の膨大なデータ(数GB)をローカルにダウンロードしています。
データ量が膨大で3日程かかってしまいます。


DL中にWindows Update等の横やりがはいり、DL処理が中断されてしまいます。

その後DL処理を再開するにあたり、既にローカルに対象ファイルがある場合には
スキップして、新しいファイルのみWEBサーバからローカルにDLする設定方法はありますか?
0442nobodyさん2015/04/15(水) 17:44:41.75ID:???
>>441
それってCakeと関係なくね?
CakeはPHPというプログラムを使って、主にWebサイトやシステムを作るものだよ?
あなたの悩みはFTPとかSSHとかtelnetとか通信上の問題だと思うんだけど。
0443nobodyさん2015/04/15(水) 20:13:33.16ID:???
>>441
ベリファイ処理の時の完了フラグ建てとくとか?
少なくともCakePHPに求める機能ではないね
0444nobodyさん2015/04/15(水) 20:20:48.34ID:???
>>439
ありがとうございます。
Containableはよさそうですね。

>>440
Hashはバッドノウハウってのはまさにですが使ってますね。
とりあえずはcake2をしばらく弄ってみます。
0445nobodyさん2015/04/16(木) 19:40:28.40ID:???
ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★
ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★
0446nobodyさん2015/04/16(木) 20:04:32.48ID:qC1kWGvR
>>445
<b>どうやってかいた?</b>
0447nobodyさん2015/04/16(木) 20:13:15.48ID:???
ウンコって書きました。もうしませんごめんなさい。 by FIX ★
0448nobodyさん2015/04/16(木) 20:14:44.25ID:???
ftp://って書くとウンコ・・・ってでる
0449nobodyさん2015/04/16(木) 22:21:57.51ID:???
ウンコって書きました。もうしませんごめんなさい。 by FIX ★あいうえお
0450nobodyさん2015/04/18(土) 17:51:43.74ID:???
http://peace.2ch.net/test/read.cgi/bun/1349529904

>>472


なんで IDとか日付が他のレスと違ってるの?
2chのバグ?
0451nobodyさん2015/04/19(日) 18:05:07.95ID:0/QVOYd7
cake2系で多次元配列のバリデーションエラーってどう表示すればいいのでしょうか?

#ビュー
echo $this->Form->input('Entry.1.name', array('type' => 'text'));
echo $this->Form->error('Entry.1.name');

では表示されませんでした。
0452nobodyさん2015/04/19(日) 19:11:07.38ID:???
>>451
そもそもエラー発生してる?
formのdatetimeのバリデーションとかyear monty dayでエラー吐かせる処理とか参考にするとよいよ
0453nobodyさん2015/04/19(日) 20:23:57.18ID:0/QVOYd7
>>452
$this->Entry->validationErrorsをするとエラーは発生しています。
とりあえず簡単には出来そうにないですね、カスタマイズしていかないと・・。
0454nobodyさん2015/04/19(日) 22:10:36.85ID:???
>>453
いや、書き方はそれであってると思うよ
少なくとも自分はその書き方で実現できている(cake2.4.6)
なのでエラーの設定側の方を疑ってみるとして、
debug($this->Entry->validationErrors[1]['name']);
の出力結果が
array(
(int) 0 => 'エラーメッセージ'
)
みたいになっているか確認してみるといい
0455nobodyさん2015/04/19(日) 23:57:05.45ID:0/QVOYd7
>>454
逆になってました。
array(
'name' => array('0' => 'メッセージ’)
)
みたいな。

バリデーションを発生させる時、手動でやってるのですが、
$this->Entry->set($this->request->data['Entry'][1]);
$this->Entry->validates()
みたいにしているのが駄目なんですかね?
でも、こうしないと個別にバリデーション出来ないし・・・。
04564512015/04/20(月) 00:10:41.17ID:???
分かりました。上記の書き方では駄目みたいです。
$this->Entry->saveAll($this->request->data['Entry'], array( 'validate' => 'only' ));
だと複数レコードのバリデーションだけやってくれ、
>>451の$this->Form->errorが無くてもエラー表示されました。
0457nobodyさん2015/04/24(金) 11:11:15.22ID:???
>>433
Tera Term開発者(チーム)にFTP機能を追加してくれるように頼むか、自分でパッチを書いて提案する
0458nobodyさん2015/04/24(金) 17:42:45.73ID:T3bkqRm0
>>450
に誰か回答してやれよ。
0459nobodyさん2015/04/24(金) 18:37:24.44ID:???
自分で答え書いてるから回答する必要ない
0460nobodyさん2015/04/25(土) 02:41:48.48ID:???
ちゃんとintlも入れてphpiniも書き換えたのに500吐く
もうレンサバで動かすのが無理なのか?
3.0でなんかやってる人ってVPSとかでやってんのかな?
0461nobodyさん2015/04/25(土) 19:24:11.08ID:tDD6UmBw
Cake初心者です。2.5.1を使っています。
バッチ処理用にシェルを作ってコンソールから実行するとapp/tmp/cache/models以下にroot権限のファイルができます。
するとWebから実行した時ファイルに書き込めないとエラーになります。
これは普通どうやって対策するものなんでしょうか?よろしくお願いします。
0462nobodyさん2015/04/25(土) 20:56:01.41ID:???
バッチの実行者を変えればいいんじゃないの?
0463nobodyさん2015/04/26(日) 10:00:38.91ID:???
>>461
これじゃなくて?

Tmpディレクトリのパーミッション

whoamiチェック

$ cd /var/www/html/cake_2_0
$ vim whoami.php
whoami.php
<?php echo exec('whoami'); ?>
whoami.phpにアクセスし、実行ユーザを確認
http://example.com/cake_2_0/whoami.php
結果がapacheだったとして進めます。
# 権限設定
$ chown -R apache app/tmp
0464nobodyさん2015/04/26(日) 10:02:31.68ID:???
>>463
コピペしたらわかりにくくなった
すまそ
ここね

http://qiita.com/sampleb3/items/d274bc1cecda8ef62c28
0465nobodyさん2015/04/26(日) 11:02:48.16ID:???
2.6.4を使用しています。WordPressのインストール設定のように、
ブラウザからテーブル作成や初期レコードの追加などを行いたいです。
DBに登録するデータの設定はSchemaから行うのはわかったのですが、
コマンドではなくてブラウザから行う方法が分かりません。

何かやり方がありましたら手順を教えて下さい。
(出来ればPHPのsystemコマンドを使う方法以外で教えて下さい)
0466nobodyさん2015/04/26(日) 13:52:26.27ID:???
>>465
phpMyAdmin
0467nobodyさん2015/04/26(日) 14:02:32.53ID:???
>>466
Cake上から実行したいのです
0468nobodyさん2015/04/26(日) 15:07:52.26ID:???
>>467
cakeでDB管理ページを作ればいいんじゃね?
0469nobodyさん2015/04/26(日) 18:29:57.09ID:???
Cakeで新規アプリを作るときにDB構築をブラウザだけで
一からやりたいという希望のようだけれど、そんな機能はないよ
0470nobodyさん2015/04/26(日) 20:30:12.18ID:???
baserCMSを参考にします。ご迷惑おかけしました。
0471nobodyさん2015/04/26(日) 22:32:06.38ID:???
cakephp3を使ってるんだけど、データベースの設定のところにあるタイムゾーンってphpの仕様に合わせて書けばいいんだよね?
Asia/Tokyoって書いたらMySQLがエラー吐くんだけども
0472nobodyさん2015/04/27(月) 17:10:39.74ID:???
>>471
おれもエラー出たからETCのままにしてるけど
DBの読み書きで問題出てないとだけ報告
0473nobodyさん2015/04/27(月) 19:03:49.33ID:???
createdとかの時間が9時間前で書き込まれてるんだけども、これなんとかならんのかね
データベース側でselect now()やってみたら正しい時間になるんだけども
0474nobodyさん2015/04/27(月) 23:42:19.48ID:???
ごめんなさい、上のものですが、9時間前で書き込まれるのはbootstrap.phpでタイムゾーンを日本に設定してなかったのが原因でした。
このファイルこういう為にあったのね…
適当すぎました。
0475nobodyさん2015/04/28(火) 00:34:09.14ID:???
>>472
どこの高速道路でスクリプト走らせてるんだよ
0476nobodyさん2015/04/28(火) 15:17:14.96ID:???
Cakeに限らないと思いますが、1対多のモデルを絞り込み検索する場合って、
多の方を検索して一致する親IDを抽出し、conditionsするのがセオリーですよね?
0477nobodyさん2015/04/30(木) 02:23:35.28ID:pzkccb8r
cakephpで複数のログインページを作ろうとすると、
beforeFilterでセッションを別にしてもなんか動作ばぐる(
複数のうちのひとつの認証ページにしか飛ばない)んですけど
実現できた人いますか?
0478nobodyさん2015/04/30(木) 12:27:23.16ID:???
>>477
どうやって別にしてるか簡単にソース書いてみ
0479nobodyさん2015/04/30(木) 18:28:35.07ID:???
cakephp2.5で、データベースを使いたくない場合、
コントローラーにpublic $uses = nullとしているんですが
相変わらず
Error: Cannot access empty property
というエラーが表示されるんですが、どうしたらいいでしょうか?
0480nobodyさん2015/04/30(木) 20:39:57.17ID:???
>>478
ありがとさんくす
class TasksController extends AppController {

public $components = array(
'Auth' => array(
'loginRedirect' => array(
'controller' => 'offerpage',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'offers',
'action' => 'login',
),
'authenticate' => array(
'Form' => array(
'userModel' => 'Offer',
'passwordHasher' => 'Blowfish'
)
)
)
);

public function beforeFilter(){
# parent::beforeFilter();
// ユーザー自身による登録とログアウトを許可する
$this->Auth->allow('add', 'logout');
# offers,adminsログインと混同しないように
AuthComponent::$sessionKey = 'Auth.offers';
}
0481nobodyさん2015/04/30(木) 20:40:36.55ID:???
と
class UsersController extends AppController {

public $components = array(
'Auth' => array(
'loginRedirect' => array( 'controller' => 'mypage', 'action' => 'index' ),
'logoutRedirect' => array( 'controller' => 'users', 'action' => 'login' ),
'authenticate' => array(
'Form' => array(
'userModel' => 'User',
'fields' => array('username' => 'email','password' => 'password'),
'passwordHasher' => 'Blowfish'
)
),
'authError' => 'Eメールアドレスとパスワードを入力してください',
)
);

public function beforeFilter(){
parent::beforeFilter();
// ユーザー自身による登録とログアウトを許可する
$this->Auth->allow('add','logout');
# offers,adminsログインと混同しないように
AuthComponent::$sessionKey = 'Auth.users';

です
0482nobodyさん2015/04/30(木) 20:44:57.61ID:???
>>479
nullじゃなくてfalseじゃね
0483nobodyさん2015/04/30(木) 20:58:11.41ID:???
>>482
nullとfalse両方でやってみたけど以下のエラーを吐いてしまいます…
Fatal error: Cannot access empty property in /home/xxx/www/cakephp/lib/Cake/Controller/Controller.php on line 437
0484nobodyさん2015/04/30(木) 21:50:07.20ID:???
>>483
$usesじゃなくて$useTableじゃね
0485nobodyさん2015/05/01(金) 03:25:03.53ID:???
>>484
さんくす!!
0486nobodyさん2015/05/05(火) 07:01:11.64ID:???
paginatorで、本来とは違うモデル(データーベース)のin句を使いたいんですけど
やり方が分かりません
誰かやり方を教えてくれませんか?
0487nobodyさん2015/05/05(火) 20:48:55.06ID:???
>>486
標準のページングと違う動作をさせたければ
paginateCount()とpaginate()という関数を
モデルかビヘイビアに作り、paginateCountで全体の件数、
paginateで1ページ分のデータをreturnするよう実装すればいい

引数とかの詳細はマニュアルに書いてある
http://book.cakephp.org/2.0/ja/core-libraries/components/pagination.html#id3
0488nobodyさん2015/05/06(水) 18:37:43.56ID:???
>>486
もうちょっと具体的に書いてもらわないと何とも
0489nobodyさん2015/05/06(水) 19:12:43.08ID:???
そもそもpagenatorでin句って使えるの???
0490nobodyさん2015/05/06(水) 20:39:42.84ID:???
countとれるconditionsなら何でもいけるんじゃないの
0491nobodyさん2015/05/07(木) 22:42:13.49ID:???
Paginatorのビュー表示、$this->Paginator->numbersで
「1|2|3|4|5」と表示して5をクリックしたら、
「3|4|5|6|7」と表示させることって出来るのでしょうか?
0492nobodyさん2015/05/08(金) 00:05:45.85ID:???
>>491
むしろ自動でそうならない?
04934862015/05/09(土) 08:14:27.22ID:???
みなさんレスありがとうございます。
結局、IN句がどうしても入らないので(文字列扱いになる)、
ORを利用することで解決しました

もしIN句で実現できるよーって人がいましたらレスしてくれると嬉しいです。
0494nobodyさん2015/05/09(土) 12:00:46.20ID:???
>>493
inはorやnot inとかと違って、明示的に書かずに配列を入れるだけでいいはずだよ
普通のfindのconditionsではin動いてる?
0495nobodyさん2015/05/09(土) 13:18:29.99ID:???
>>492
自動って、$this->Paginator->numbers()を出力したらということですか?
このままではなりません。普通に、5|6|7・・・とページが増えるだけです。
0496nobodyさん2015/05/09(土) 13:29:34.52ID:???
>>495
引数のmodulesの数を4とかに調整してみ
0497nobodyさん2015/05/09(土) 13:58:19.35ID:HYo3XLyg
>>492
自動ではならなかったと思うが…。
0498nobodyさん2015/05/13(水) 13:39:51.91ID:???
1対1のテーブルの場合(usersとprofilesとする)、
これまでprofilesにuser_idを追加していたんだけど、必要なかったんだね。
profilesのidのauto_incrementを止めて、
ProfileモデルにprimaryKey='id'とすれば、saveもfindも問題なく拾ってくれる。

既出だと思うが、自分としては発見だったのでメモする。
0499nobodyさん2015/05/13(水) 22:16:31.12ID:???
>>498
hasoneかつbelongstoでお互い同じidならってこと?
便利そうに見えるけど何となく気持ち悪い気もする
0500nobodyさん2015/05/13(水) 22:27:43.38ID:???
>>499
users:id
profiles:user_id

にも出来るよ。見た目的にはこの方が良いかも。
0501nobodyさん2015/05/13(水) 23:51:45.42ID:???
>>500
idの代わりにuser_idをプライマリにするのね
それならまだわかる
0502nobodyさん2015/05/19(火) 12:15:05.85ID:jQo/pXrB
任意のタイミングでユーザのセッションを切りかつ認証を拒否する
エレガントな方法ってありますでしょうか?

セッションにユーザのIDとパスワードを入れといて
ページ遷移ごとにいちいち認証かけるってのも、あるけど
非セキュアな気がして気が進みません。。。
0503nobodyさん2015/05/19(火) 13:20:38.39ID:???
Auth使う方法は駄目なの?
0504nobodyさん2015/05/19(火) 17:12:56.72ID:c25x6ol9
物凄く小規模なDB操作(例えばテーブル1つとか)の場合、
Cake使うまでもないと思いますが、皆さんはどうしてますか?

PDOと使うとか別の小規模フレームワーク使うとかPHP直書きとか
色んなパターンあると思いますが、出来るだけ手間なく使える方法が知りたいです。
0505nobodyさん2015/05/19(火) 20:16:10.79ID:???
>>504
どんなに小さくてもCake使ってる
0506nobodyさん2015/05/19(火) 23:13:58.17ID:???
>>502
セッションの使い方が間違ってる気がする
普通にauthコンポーネント使って任意のタイミングでsession消すか
logoutさせればok

>>504
1ファイルで収まる程度ならpure php
それ以上ならcakephp使うわ
ミニマルフレームワークに学習コストかける気になれない
05075042015/05/19(火) 23:46:28.25ID:???
>>505-506
DB登録とか参照をどうするか悩んでいます。
Cakeの書き方がベストとはいえ、ページの一部だけに使うのでMVCは必要なく、
かといって、SQL文を直書きなのもどうかと思ったり。
SQLインジェクション対策とか必要ですし。
0508nobodyさん2015/05/20(水) 07:47:42.44ID:???
>>507
そこはPDOしかない
セキュリティー的にはいろいろ言われてるけど
きちんと使えば大丈夫
のはず
0509nobodyさん2015/05/21(木) 21:37:14.24ID:???
>>507
そんなに不安がるということはかなりの初心者だね?
もう一度PHPを基本からじっくり勉強し直した方が良いかもよ。
0510nobodyさん2015/06/03(水) 21:07:19.92ID:???
完全に嵌ったので教えて・・・・・・。

WEBサーバはnginxで「/var/www/docroot/hello/cake」にCakeを置きました。
ドキュメントルートは「/var/www/docroot/hello」です(Cakeはサブディレクトリ)。

そこで「https://foobar.net/cake/」でアクセスします。
しかし、cssやgifが取れない。ログには「https://foobar.net/cake/baz.css」と残っています。
Cake的には「https://foobar.net/cake/app/webroot/baz.css」を読んで欲しいが、それが上手くいかない。

ググると日・英なり、色々と出ては来るが、どうにも決定打がない。
お分かりになる方いますか。
0511nobodyさん2015/06/03(水) 21:23:59.28ID:???
↑
黙れバカ。ぐぐれ。
0512nobodyさん2015/06/03(水) 22:20:10.80ID:???
教えてやろうと思ったけど、511のツッコミに糞ワロタwwww
さすがにそのレベルだと回答するのも馬鹿馬鹿しくなるな
0513nobodyさん2015/06/03(水) 23:07:24.18ID:???
まずドキュメント読めよ
■ このスレッドは過去ログ倉庫に格納されています