【PHP】フレームワーク CakePHP 19ホール目【v3.3】 [無断転載禁止]©2ch.net

1nobodyさん2016/12/24(土) 11:50:31.88ID:???
CakePHPは、Ruby on Railsの概念の多くを取り入れた、高速開発とPHPの機動性を兼ね備えたフレームワーク
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです

■本家
https://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
https://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
cookbook(マニュアル)
[3.x] http://book.cakephp.org/3.0/ja/
[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

■日本語公式
https://cakephp.org/jp/

■前スレ
【PHP】フレームワーク CakePHP 17ホール目【v3α】
http://tamae.2ch.net/test/read.cgi/php/1406984261/

277nobodyさん2017/11/16(木) 20:51:57.04ID:JP0oMVdr
Cake2.xです
アソシエーションについて質問です
テーブルAに対してテーブルBがhasManyの関係で複数連結されている状態なんですが、
その時Bがヌルでない行のみ取得したいのですが
どのような条件で取得すればいいでしょうか?
Cake始めたばかりなので初歩的な質問で申し訳ありませんがどなたか教えてください

278nobodyさん2017/11/16(木) 21:51:44.22ID:???
>>277
cakephp2 inner join でググれ
あと、sqlかER図か、どっちかは知っとけ
少しは捗るから

279nobodyさん2017/11/17(金) 01:46:02.83ID:???
>>277
left join right join

280nobodyさん2017/11/17(金) 08:34:54.02ID:WtclANQp
ありがとうございました

281nobodyさん2017/11/17(金) 22:36:39.69ID:WtclANQp
共通クラスの追加方法について教えて下さい
普通の共通クラスはController/Componentsに追加すれば良さそうですが
こちらではComponentクラスを継承しなくてはいけないようなので
ちょっと都合が悪いです。
自由に別クラスが継承できて共通クラスを追加する方法を教えて下さい
バージョンはcake2です

282nobodyさん2017/11/18(土) 02:25:24.23ID:???
ざっくりすぎてよくわからんのでお断りします

283nobodyさん2017/11/18(土) 03:54:47.54ID:???
>>281
Compornentクラス継承が都合悪いなら、プラグインの自作だな
俺は解説出来ないけど、「cakephp2 プラグイン 作り方」で検索したら
日本語、かつソースコード付きのわかりやすい解説が山ほど出てくるから
適当に読んでコツコツ作ってみると良い

284nobodyさん2017/11/19(日) 03:27:18.02ID:???

285nobodyさん2017/11/19(日) 10:21:02.75ID:???
いちいち貼るなよウザイ
その情報が必要な人は、ここ見なくても知るから大丈夫だよ

286nobodyさん2017/11/19(日) 11:32:49.54ID:???
>>284
いつもご苦労様です。すごく役に立ってます。これからもよろしくお願いします。

287nobodyさん2017/11/19(日) 11:44:09.23ID:???
反応する奴もウザい。
スルーしときゃ良いのに

288nobodyさん2017/11/19(日) 14:11:07.66ID:???
>>285
いつも反応ありがとうございます

289nobodyさん2017/11/20(月) 04:38:00.69ID:???
>>285
スレタイ読めないのかな?

290nobodyさん2017/11/26(日) 17:25:12.89ID:???
>>273
さらに今更だけど、modelが配列からオブジェクトになったから、formで
postされたmultipleなchekboxの中身がそのままmodelに渡すと空になる
ということでは?

291nobodyさん2017/11/26(日) 22:05:48.45ID:???
>>290
あー、確かに
今みたら、俺のコードだと配列に落としてむりくり表示してるわ
そーゆうやっつけ仕事はほめられたもんじゃないな
もっと便利の良い方法があるかもしれんね
ちとドキュメント読み直してみるか...

292nobodyさん2017/11/26(日) 22:25:45.26ID:???
あ、表示は[戻る]リンクの時ね
Modelにも配列でむりくり渡してるから同じ
事だけど

293nobodyさん2017/11/28(火) 21:59:19.69ID:/MGz0p3z
以下のような内容のデータをfind関数で取得したいんですが
どのように書けばいいですか?(直接SQLを実行する方式ではなく
クエリビルダで取る方法を教えてください)

select * from (
select * from TableA
)

※クエリ自体は無駄な部分を排除してシンプルにしているのでこのようになっております
実際に使用するときはこちらの形を応用して使用する予定です

294nobodyさん2017/11/30(木) 18:51:46.91ID:???
cake2で、PHP7.1.12の環境でI18n絡みのエラーが出る人います?
サーバ起動後、初回のアクセスでのみ発生するというわけのわからない状況、
うちだけでしょうか?

295nobodyさん2017/11/30(木) 18:54:56.08ID:???
もしも発生したら、opcache無効にしてみてください。

296nobodyさん2017/12/05(火) 17:01:11.63ID:Ex5yXPl9
https://mallento.com

こういうの作るのにどんくらい時間かかるんや

297nobodyさん2017/12/05(火) 18:59:00.63ID:???
>>296
wordpress使って2日ちゃうか

298nobodyさん2017/12/06(水) 14:52:10.72ID:???

299nobodyさん2017/12/07(木) 00:57:09.21ID:???
>>293
サブクエリー内外で カラムが「*」の上、WHEREもJOINも無い
エスパー推測で以下のよーなSQLを使いたい、と勝手に解釈する

SELECT col1,col2 FROM
(SELECT col1,col2,col3 FROM TableA WHERE col1=5);

これと似た構造をCakePHP3のクエリビルダで書けるには書けるが、
「遅延実行」という仕組みがある為、生成されるSQLは大体こうなる

SELECT col1,col2 FROM TableA WHERE col1=5;

あと、MySQLとMariaDBでは1回のSQLで使えるインデックスは1つだから
サブクエリーを多用すると遅くなる
メンテナンス性が高まる、とかいうメリットを考えてるかもしれんが、
速度を改善したくなったり、見やすいコードを書きたくなったりする時期が来た頃には手遅れやぞ?

300nobodyさん2017/12/07(木) 10:47:18.54ID:???
[CakePHP3] データ漏洩していませんか?RequestHandlerの危険性
https://qiita.com/mosaxiv/items/2ec84d2b2ec352e08e50

301nobodyさん2017/12/07(木) 11:10:22.61ID:???
何でもかんでも自動化しすぎた弊害やな
ひどすぎ

302nobodyさん2017/12/10(日) 01:03:05.30ID:GTT9hkGC
>>299
クエリが変わってるんですけど・・・
あとたったこれだけのサブクエリでレスポンスが遅くなるとは思えないんですけど・・・

303nobodyさん2017/12/10(日) 01:41:05.50ID:???
そこまで言うやつがなんでそんな質問した?

304nobodyさん2017/12/10(日) 11:28:32.59ID:???
>>302
「遅延実行の仕組みで」って書いてあるのは無視か?

SQLが短いのは、クエリビルダ使用前と使用後の違いを目立たせるため
実務なら普通に1行で書く
$hoge=$this->TableAs->find()->select(['col1','col2'])->where(['col1'=>5]);
(TableAがTableAs になってる、とか言い出すアホはいないと信じたい)

で、2重構造にするなら思いつくだけでも3つ以上ある
1 VIEW を使う
2 Modelにサブクエリ風のfunction書く
3 ModelにbyHoge(Query,$options=[])を用意してControllerからfindbyhogeで呼ぶ
4 Cpntroller内でクエリビルダを2回使う
TableAが定義されてないのに、これ全部例示する気にはならんわ

305nobodyさん2017/12/10(日) 14:19:32.34ID:???
ちんぺい @chinpei215
先日の RequestHandler に起因する脆弱性の公式アナウンスがありました。また非公式ですが私の方で翻訳を行っています。
https://mbstring.com/news/potential-information-disclosure-in-application-skeleton/
14:06 - 2017年12月10日

306nobodyさん2017/12/10(日) 15:04:32.13ID:???
>>305

>>35で指摘されてた仕様バグか。

307nobodyさん2017/12/10(日) 15:30:49.58ID:???
35で指摘した本人だけど、AppControllerのbeforeRenderから
$this->set('_serialize', true);
を削除する対応よりは、
_serialize変数が宣言されていなければ
$this->set('_serialize', []);
を設定するという対応のほうが良いと思うんだが。

RequestHandlerはviewの切り替え以外でも使われるわけで、RequestHandlerを
使うなという対応よりは、使われる前提での対応のほうが適切かと思う。
というか$this->set('_serialize', true)はクソ仕様。

public function beforeRender(Event $event)
{
$return = parent::beforeRender($event);
if (!array_key_exists('_serialize', $this->viewVars) &&
in_array($this->response->type(), ['application/json', 'application/xml'])
) {
$this->set('_serialize', []);
}
return $return;
}

308nobodyさん2017/12/11(月) 20:38:38.48ID:xIATB1iO
>>304
ありがとうございます
4番ってどうやるのか教えていただけると助かります

309nobodyさん2017/12/12(火) 14:39:24.31ID:???

310nobodyさん2017/12/13(水) 22:58:13.63ID:???
バージョン1.3です
ページネーションのメタタグ作りたいんだけど、
ページネーションヘルパーから次のページのURLを絶対パスで引数付きで取得する方法ってありませんか?

コントローラーでベタ書きして渡せば出来ないことはないんだけど、スマートな書き方ってありませんか?

311nobodyさん2017/12/14(木) 02:40:39.11ID:???
>>308
よりによってそれかよ
まあ、需要があるなら書くが・・・
1つめのクエリー
$hoge=$this->TableAs->find()->select(['col1','col2','col3'])->where(['col1'=>5]);
2つめのクエリー
$fuge=$hoge->select(['col1','col2']);

controller内でデータとして使うときは、
全件取得:$koge=$fuge->all();
最初の一件だけ取得:$koge=$fuge->first();
で実体化する
あとは、debug($koge);
で中身を表示・確認しながら好きなように使う
それと、 debug($fuge);でどんなクエリーが出来るてるかみたほうが良い

312nobodyさん2017/12/15(金) 00:53:30.90ID:???
何だかんだでアドベントカレンダー全部埋まってるよね

313nobodyさん2017/12/15(金) 13:08:41.92ID:8lbMqtX+
>>311
ありがとうございます

314nobodyさん2017/12/15(金) 15:50:39.75ID:uvNq4kU6
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
雑学ツイートで年収6000万円の23歳 UberFactsは何をしたのか
https://weekly.ascii.jp/elem/000/000/304/304724/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
20歳のYouTubeスターが購入、約8億円の豪邸を拝見
https://www.businessinsider.jp/post-107308#cxrecs_s
23歳のマインクラフト実況YouTuberが5.4億円の大豪邸を購入!
http://netgeek.biz/archives/52494
24歳美人ユーチューバーZoellaが1億円豪邸を購入
http://media.yucasee.jp/posts/index/14594
スケールが違う!海外実験系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/28/225022
YouTubeでサラリーマンはどこまで稼げるか?
http://president.jp/articles/-/20593

315nobodyさん2017/12/18(月) 20:48:00.40ID:/6ufxAgH
テーブルAとテーブルBは互いにhoge_idというカラムを持っていて
hasManyで紐付けたいんですが
hoge_idはどちらのテーブルでも主キーではありません
この場合アソシエーションではどのようにくっつければいいのでしょうか?

316nobodyさん2017/12/19(火) 01:20:37.04ID:???
join

317nobodyさん2017/12/19(火) 10:21:33.97ID:???
bindingKey

318nobodyさん2017/12/28(木) 01:35:32.25ID:???

319nobodyさん2017/12/30(土) 00:30:26.70ID:???

320nobodyさん2017/12/30(土) 03:27:06.07ID:???
暇つぶしでリリースしているのか?

321nobodyさん2017/12/30(土) 12:12:27.48ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

AJ01PNMU9X

322nobodyさん2018/01/12(金) 12:23:55.23ID:sIw4I1wY
2系を使用しています。コントローラー内でのビューの取得について相談です。
コントローラーで
function test() {
 $this->render('test');
 $body = $this->response->body();
}

とすれば取得できるのですが、
取得した文字列の一部を加工して出力しようと、

echo str_replace('タイトル', 'TITLE', $body);

しても二重に出力されてしまいます。
加工後のデータだけ出力するにはどうすれば良いのでしょうか?

323nobodyさん2018/01/12(金) 13:41:33.42ID:???
renderはデフォルトで出力もする
$this->autoRenderあたりでオフれるはず

324nobodyさん2018/01/16(火) 16:02:56.64ID:F9OHrtI3
すみません
サーバーに全ファイルをffftpでアップするとき
vendorファイルの中が多すぎて止まってしまうんですが
どうすれば良いでしょうか?

325nobodyさん2018/01/16(火) 19:40:29.05ID:7wPVJOiZ
いまどきFTPなんて欠陥プロトコルとそのクライアント使うなってことです

326nobodyさん2018/01/16(火) 22:25:46.91ID:???
まあそれしか使わせて貰えないサーバーもあるだろよ
無料レンサバとかさ

327nobodyさん2018/01/18(木) 04:59:32.04ID:???
>>324
zipであげて解凍

新着レスの表示
レスを投稿する