私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワーク CakePHP 12ホール目【笑】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
$paginator->options
ってコントローラーで指定できませんよね?
ってコントローラーで指定できませんよね?
何でディレクトリ名キャメルケースになっちゃったの?
何か理由があるのかね?
何か理由があるのかね?
モデルのアソシエーション先の afterFind について質問なんですが、
処理した内容を return で返してもデータが反映されず困ってます。
試しに return を null にしてもちゃんとデータを引っ張ってきてしまいます。
afterFind メソッドは叩かれてるようなんですが、戻り値を使っていないという感じです。
ちなみに直接 Find するとちゃんと戻り値が反映されます。
解決方法はありますでしょうか?
処理した内容を return で返してもデータが反映されず困ってます。
試しに return を null にしてもちゃんとデータを引っ張ってきてしまいます。
afterFind メソッドは叩かれてるようなんですが、戻り値を使っていないという感じです。
ちなみに直接 Find するとちゃんと戻り値が反映されます。
解決方法はありますでしょうか?
>>805
ソースというか、それ以前なんです・・・。
上の質問で試したソースです。
よろしくお願いします。
class Post extends AppModel {
var $hasMany = array(
'Postmeta' => array(
'className' => 'Postmeta',
'foreignKey' => 'post_id'
)
);
}
class Postmeta extends AppModel {
function afterFind($results, $primary) {
return null;
}
}
これで Post->find('all') すると return null してるから Postmeta は空、と思ってるんですが反映されません。
ソースというか、それ以前なんです・・・。
上の質問で試したソースです。
よろしくお願いします。
class Post extends AppModel {
var $hasMany = array(
'Postmeta' => array(
'className' => 'Postmeta',
'foreignKey' => 'post_id'
)
);
}
class Postmeta extends AppModel {
function afterFind($results, $primary) {
return null;
}
}
これで Post->find('all') すると return null してるから Postmeta は空、と思ってるんですが反映されません。
UpperCamelCase = Pascal
lowerCamelCase
lowerCamelCase
SNS作ってるんだけど、どうしても規模が大きくなるから
ディレクトリ構造が複雑になって辛い・・・
ディレクトリ構造が複雑になって辛い・・・
Paginator使ってるページで、URLに「limit:1000」とかパラメータを埋め込まれると
controllerで設定したlimitを上書きしちゃうんだけど、URLからのパラメータ指定を
無効にするにはどうしたらいいの?
controllerで設定したlimitを上書きしちゃうんだけど、URLからのパラメータ指定を
無効にするにはどうしたらいいの?
>>816
ありがとう。2.0の変更内容を見ていてはじめて、URLパラメータでlimitが任意で指定できることを知った。
limitに1000000とか指定されても迷惑なので、paginateのwhitelistにきちんと値を設定することにするよ。
ありがとう。2.0の変更内容を見ていてはじめて、URLパラメータでlimitが任意で指定できることを知った。
limitに1000000とか指定されても迷惑なので、paginateのwhitelistにきちんと値を設定することにするよ。
スマホアプリ用のJSON返すだけの画面のないWeb APIで
CakePHP2.0使おうかと思ってるんだけどどうっすかね?
Web APIの数は数十本くらいになると思うんだけど
その程度でCakePHPはやめとけとか他のフレームワークの方がいいよとか
意見聞かせてください。
CakePHP2.0使おうかと思ってるんだけどどうっすかね?
Web APIの数は数十本くらいになると思うんだけど
その程度でCakePHPはやめとけとか他のフレームワークの方がいいよとか
意見聞かせてください。
http://book.cakephp.org/ja/view/1323/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%A4%E3%83%8A%E3%83%96%E3%83%AB
お前らコレ使ってる?
なんか複雑なクエリ発行したいときに便利そうだが
お前らコレ使ってる?
なんか複雑なクエリ発行したいときに便利そうだが
>>820
言葉が足りなかった。件数の設定をやめさせる、というわけではないよ。
コントローラでlimitをパラメータから取得して、paginateのオプションに
明示的に設定してから、paginateを実行する。
言葉が足りなかった。件数の設定をやめさせる、というわけではないよ。
コントローラでlimitをパラメータから取得して、paginateのオプションに
明示的に設定してから、paginateを実行する。
俺も。
時々Containableでは賄いきれなくてbindModelとか使うはめになるとチッって思う。
時々Containableでは賄いきれなくてbindModelとか使うはめになるとチッって思う。
俺はもうjoinsを中心に使ってる。
色々付けたり外したりしてると、わけわからんようになってくるしw
色々付けたり外したりしてると、わけわからんようになってくるしw
containableは基本的に全部のモデルを関連づけておいて、必要に応じて取ってくるモデルを選択するやりかた
bind,unbindするより500倍扱いやすい
http://book.cakephp.org/ja/view/1323/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%A4%E3%83%8A%E3%83%96%E3%83%AB
>コンテイナブルを使わないならモデルの unbindModel() を使用することになります。複数のモデルを切り離すなら、
>unbindModel() を何度も実行しなければなりません。コンテイナブルによって同じことをより簡潔に行えます。
bind,unbindするより500倍扱いやすい
http://book.cakephp.org/ja/view/1323/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%A4%E3%83%8A%E3%83%96%E3%83%AB
>コンテイナブルを使わないならモデルの unbindModel() を使用することになります。複数のモデルを切り離すなら、
>unbindModel() を何度も実行しなければなりません。コンテイナブルによって同じことをより簡潔に行えます。
paginate使ってる人、
groupオプション(GROUP BY)付けてページネートしてみて
ページが1ページしかないように返してくるから
これってバグだよね?
ググってみると、
http://d.hatena.ne.jp/aroundthedistance/20090728/1248784179
こんな記事もあるんだけど、
2009年の記事なのに未だに(1.3使用)直ってないってこと?
groupオプション(GROUP BY)付けてページネートしてみて
ページが1ページしかないように返してくるから
これってバグだよね?
ググってみると、
http://d.hatena.ne.jp/aroundthedistance/20090728/1248784179
こんな記事もあるんだけど、
2009年の記事なのに未だに(1.3使用)直ってないってこと?
モデルの関連づけがいまいちわからないのですけどいいサイトあったらおしえてください
実開発でもそうだった。
検索して、ヒットしたブログ記事を参考に実装してた。
検索して、ヒットしたブログ記事を参考に実装してた。
>>832
recursiveでもできるよ。
だけど、containableを使うともっと細かく制御できる。
例えば、
usersテーブルに
hasOneでprofilesテーブルと
postsテーブルが
関連付けされててusersとprofilesだけ欲しい場合
$this->Users->find('all', array('contain' => 'Profile'));で取れる。
recursiveでもできるよ。
だけど、containableを使うともっと細かく制御できる。
例えば、
usersテーブルに
hasOneでprofilesテーブルと
postsテーブルが
関連付けされててusersとprofilesだけ欲しい場合
$this->Users->find('all', array('contain' => 'Profile'));で取れる。
さらに、ProfileにState(都道府県)を関連づけしてる場合
$this->Users->find('all', array(
'contain' => array(
'Profile' => array('State')
)
));
で取れる。
$this->Users->find('all', array(
'contain' => array(
'Profile' => array('State')
)
));
で取れる。
>>833
誰かこれどう?1.3以上の人試してくれない?
コントローラの設定で、
var $paginate = array(
'Model' => array(
'group' => 'Model.id',
'order' => 'Model.id DESC',
'limit' => 5,
)
);
としてみるだけでいい
ページネーションのページ数が1になる
(ページ数(pageCount)が入っている配列はView内で $paginator->params() で取得可能)
誰かこれどう?1.3以上の人試してくれない?
コントローラの設定で、
var $paginate = array(
'Model' => array(
'group' => 'Model.id',
'order' => 'Model.id DESC',
'limit' => 5,
)
);
としてみるだけでいい
ページネーションのページ数が1になる
(ページ数(pageCount)が入っている配列はView内で $paginator->params() で取得可能)
>>837-838
これはわかりやすい!直感的にイメージできた。GJ!
これはわかりやすい!直感的にイメージできた。GJ!
CakePHPで画像のサムネイルをリアルタイム(アクセス毎)で生成してるんだけど、
40画像ぐらい表示させると、表示しない画像がちらほら出てくる・・・
実装としては、大きな画像をサーバ上に置いて、
・<img src="<?php echo $html->url('/thumbnails/view/1234'); " />
のようにimgタグでコントローラにリクエスト
・渡されたIDをもとに画像のパスが保存されてるテーブルをfind()
・その画像からサムネイルを生成して返す
という感じ。
1人がアクセスするたびに、40個画像があれば、
CakePHPが40個起動するのはやっぱりこの実装は問題ありなのかな?
同時接続数にひっかかってる気もする
ちなみに ZOZOTOWN(http://zozo.jp)はCakePHPではないと思うけど、
上記のような感じでアクセスされて生成している模様
40画像ぐらい表示させると、表示しない画像がちらほら出てくる・・・
実装としては、大きな画像をサーバ上に置いて、
・<img src="<?php echo $html->url('/thumbnails/view/1234'); " />
のようにimgタグでコントローラにリクエスト
・渡されたIDをもとに画像のパスが保存されてるテーブルをfind()
・その画像からサムネイルを生成して返す
という感じ。
1人がアクセスするたびに、40個画像があれば、
CakePHPが40個起動するのはやっぱりこの実装は問題ありなのかな?
同時接続数にひっかかってる気もする
ちなみに ZOZOTOWN(http://zozo.jp)はCakePHPではないと思うけど、
上記のような感じでアクセスされて生成している模様
ZOZOTOWNみたいなアクセスの多いサイトがアクセスの度にサムネイルを生成してるわけがない。
実装に問題あり。
実装に問題あり。
>>846だな
サムネイルキャッシュは公開ディレクトリに置くか、tmpディレクトリに生成して生PHPで読みに行かせるのがいいと思う
サムネイルキャッシュは公開ディレクトリに置くか、tmpディレクトリに生成して生PHPで読みに行かせるのがいいと思う
PHP通すなら、HTTPヘッダでブラウザにキャッシュさせることも考えたほうがいい。
Mediaビューが便利。
Mediaビューが便利。
みなさんありがとうございます。
>>845
してると思います
ただ、生成したあとキャッシュしてるかもしれませんが、、、
?w=70&h=84
例えばこの画像だけど、
wやhの値を変えると、その大きさになります
?w=111
こんな感じで適当な値を全て保存してるはずないので
アクセスしたときに生成してるんだと思います
>>846
はい、最初はそう考えましたが、
様々な大きさにフレキシブルに対応したいと思って、
>>844のような実装にしたくなったのです
一度生成した画像はそのまま保存して、
その大きさの画像があれば、その保存したものを取りに行くという実装にしようかな?
ZOZOTOWNのような人気サイトはどう対応してるのか・・・
>>845
してると思います
ただ、生成したあとキャッシュしてるかもしれませんが、、、
?w=70&h=84
例えばこの画像だけど、
wやhの値を変えると、その大きさになります
?w=111
こんな感じで適当な値を全て保存してるはずないので
アクセスしたときに生成してるんだと思います
>>846
はい、最初はそう考えましたが、
様々な大きさにフレキシブルに対応したいと思って、
>>844のような実装にしたくなったのです
一度生成した画像はそのまま保存して、
その大きさの画像があれば、その保存したものを取りに行くという実装にしようかな?
ZOZOTOWNのような人気サイトはどう対応してるのか・・・
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [92%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 14ホール目【v2.1】 (1001) - [92%] - 2012/12/3 19:16
- 【PHP】フレームワーク CakePHP 19ホール目【v3.3】 (844) - [92%] - 2023/2/2 14:30
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [92%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 11ホール目【v1.3】 (1001) - [92%] - 2011/6/30 22:32
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [92%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [92%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 10ホール目【v1.3】 (1001) - [92%] - 2011/2/13 8:32
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [92%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 8ホール目【1.3】 (1001) - [91%] - 2010/7/22 22:16
- 【PHP】フレームワーク CakePHP 9ホール目【v1.3】 (1001) - [90%] - 2010/11/1 2:53
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [87%] - 2008/6/19 7:19 ○
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [87%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [87%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [87%] - 2010/3/18 1:18 ○
トップメニューへ / →のくす牧場書庫について