CodeLab技術ブログ

プログラミング技術まとめ

2019年12月5日
から CodeLab
0件のコメント

[CakePHP3.x]CakePHP2にあったafterFind()やvirtualFiledsはどこに行った?

CakePHP2ではモデルのafterFind()メソッドで検索結果の整形を行うことができました。
なんですが、CakePHP3ではなくなってしまったようです。

(参考)afterFind イベントやバーチャルフィールドはありません
https://book.cakephp.org/3/ja/appendices/orm-migration.html#afterfind

続きを読む →

2019年11月19日
から CodeLab
[vscide]候補が自動選択されるのを防ぐ はコメントを受け付けていません。

[vscide]候補が自動選択されるのを防ぐ

VisualStudio Codeには高度な補完機能があるのですが、どうも過剰に働いてしまうことが多い。
特に、サードパーティーの機能を使っている場合に問題が多く、たとえばBootstrap 3 SnippetsというBootstrap3のキーワードを候補に追加するプラグインを使っているんだけど、これなぜか1文字から候補検索を始めちゃってコロンとか入れると候補がわらわら出てきてしまう。
で、Enterで改行しようとすると、意図せず候補が入力されてしまって本当にうざい…。

ということで以下の設定にした

続きを読む →

2019年11月15日
から CodeLab
CakePHP3で複合主キーを使う はコメントを受け付けていません。

CakePHP3で複合主キーを使う

CakePHP3が複数のプライマリキーを持つことができるようになったみたいなのだが、ずっと避けてきていましたが、ようやく使えそうなのでちょっといじってみました。

続きを読む →

2019年11月14日
から CodeLab
CakePHP3+Bootstrap3でチェックボックスとかラジオボタンを横並びでいい感じで表示する はコメントを受け付けていません。

CakePHP3+Bootstrap3でチェックボックスとかラジオボタンを横並びでいい感じで表示する

CakePHP3+Bootstrap3でフォーム部品を表示させようとするのだけど、チェックボックスとかが縦並びになったりイマイチ感が半端ない。
とりあえず、手っ取り早く横並びでいい感じに表示させようと試みてみました。

続きを読む →

2019年11月1日
から CodeLab
[CakePHP3.8].envファイルで設定する はコメントを受け付けていません。

[CakePHP3.8].envファイルで設定する

CakePHP3系で設定ファイルはconfig/app.phpで行いますが、config/.envファイルに設定を持たせて行う方法もあるようです。

CakePHP 3.8 (3系ならたぶん共通)

続きを読む →

2019年10月9日
から CodeLab
[CakePHP3.7] Impossible to generate condition with empty list of values はコメントを受け付けていません。

[CakePHP3.7] Impossible to generate condition with empty list of values

where()メソッドで
$query->where([‘User.id IN’=>$blacklist_users_ids]);
こんな感じで絞り込みたい場合。
$blacklist_users_idsで一つでもデータがあればいいのですが1つもない状態だと。
下記のようなエラーが出てしまいます。
Impossible to generate condition with empty list of values

バージョン
CakePHP 3.8

続きを読む →

2019年9月26日
から CodeLab
[CakePHP3.8]Hidden属性のパラメータがpatchEntityでEntityに反映されない はコメントを受け付けていません。

[CakePHP3.8]Hidden属性のパラメータがpatchEntityでEntityに反映されない

HiddenでのPOSTデータの保存処理を書いていたのだが、どうも挙動がおかしいことがありいろいろいじってみた。

編集処理の場合、保存済みのデータとPOSTデータをpatchEntity()でマージする。
で、Hidden属性のデータで中身がNULLのものをマージしたら、Entityになぜか前のデータが残ってしまっていた。

バージョン
CakePHP 3.8

続きを読む →

2019年9月13日
から CodeLab
[CakePHP3.7]saveAllの代替方法 はコメントを受け付けていません。

[CakePHP3.7]saveAllの代替方法

CakePHP2では、saveAll()メソッドで複数行に一括Insertができたのだが、CakePHP3ではなくなってしまった。
1クエリでInsertできないとなると、大量にInsertが必要な場合かなりのパフォーマンス低下になってしまいます。
どうしたらいいのか?

バージョン
CakePHP 3.8

続きを読む →

jquery logo

2019年9月10日
から CodeLab
daterangepickerで複数のフォーム一つのスクリプト管理する はコメントを受け付けていません。

daterangepickerで複数のフォーム一つのスクリプト管理する

bootstrap-daterangepicker でいい感じに1つのスクリプトで複数のフォームで動くようにする方法。
https://github.com/dangrossman/daterangepicker

続きを読む →

2019年9月3日
から CodeLab
[CakePHP3.7]TimeZone設定について はコメントを受け付けていません。

[CakePHP3.7]TimeZone設定について

CakePHP3では、そのまま使うとTimeZoneがUCTになってしまって、日本国内だけで使う場合はいろいろと面倒なことが起こりますので、日本のタイムゾーンの設定を行います。

バージョン
CakePHP 3.8

続きを読む →

2019年8月27日
から CodeLab
[CakePHP3]friendsofcake/searchでbelongsToManyを検索する はコメントを受け付けていません。

[CakePHP3]friendsofcake/searchでbelongsToManyを検索する

friendsofcake/searchの記事を以前書きましたが、それに関連して、belongsToManyなモデルで検索する場合どうしたらいいかを調べてみました。
searchプラグインについて基本的な使い方がわからない場合は、まず以前の記事を先に見てください。

バージョン
CakePHP3.7

続きを読む →

2019年8月23日
から CodeLab
[CakePHP3]ビヘイビア内で呼び出し元のモデルにアクセスするには? はコメントを受け付けていません。

[CakePHP3]ビヘイビア内で呼び出し元のモデルにアクセスするには?

モデルの共通処理をビヘイビアで管理すると、重複した余計なコードを書かずに済みますが、ビヘイビア内で呼び出し元のモデルにアクセスするにはどうしたらよいか?

バージョン
CakePHP3.x

普通に$thisでアクセスできるのかなと思って・・・

class MyBehavior extends Behavior {
    public function func() {
        $entities = $this->find()->all();
    }
}

ってやってみたけどダメでした。

続きを読む →