開発

Webビジネス

フルスタックエンジニアを批判する人たちの危うさ

自称、底辺フルスタックエンジニアのCodeLabです。最近、Twitterなどを見るとフルスタックエンジニアを批判している人が結構います。フルスタックエンジニアってそんなにダメなんでしょうか?何がダメで、なぜそのような思考になるのかを解説し...
CakePHP3.x

エラー画面のレイアウトを変更する

CakePHP4でレイアウト、つまり大枠の部分のデザインテンプレートは、デフォルトではtemplate/layout/default.php が使われます。これは、レイアウトファイルといわれていますが、デフォルトのレイアウトファイルを変更す...
CakePHP3.x

[CakePHP4]Queryからの日付取得

CakePHP4でqueryからカラムの日付をstrtotime()で変換しようとしたら以下のようなエラーになります。strtotime() expects parameter 1 to be string, object given以前の...
開発

Cakeで行ロックを使う方法

CakePHP4系で行ロックを使う方法です。あんまり指摘している記事がなかったので書いてみました。具体的にはFOR UPDATEを使うのですが、どうやって呼ぶのか?早速コードを見てみましょう//Tableクラス内などでuse Cake\Da...
CakePHP3.x

PHPのオブジェクトコピー

CakePHPのqueryビルダで、こんな感じで条件を変えて連続して結果を取得したいなぁ‥というとき。例えばこんな感じのことをしたいとすると$query = $this->find()->where(共通の複雑な条件);$a = $quer...
CakePHP3.x

Viewにセットした値をコントローラーで取得する

Viewにセットした値をコントローラーで取得する方法です。古いバージョン(CakePHP2系)コントローラークラスにプロパティーがありますので、そこから取得が可能です。$varname = $this->viewVars;現行バージョン(C...
CakePHP3.x

CakePHP4で動的生成しながらファイルダウンロード

CakePHP4でのファイルのダウンロード方法を解説します。CakePHP3/4系での記事になります。通常の方法まずは、簡単なデータを一括で生成してからダウンロードさせる方法です。$body = "あいうえお";$filename = ra...
CakePHP3.x

サーチプラグインでカラムを連結して検索したい

friendsofcake/search を使っての検索は非常に楽なんですが、いろいろわからない点が多いんですよね。カラムを連結して検索する要件があたのですが、手間取ったので記事にしました。CakePHP2の場合CakePHP2の場合は非常...
CakePHP3.x

count() メソッドは limit、 offset、 page 句を無視する?

CakePHP4で、データのエクスポートをするためにlimit()とpage()を組み合わせてcount()で残りの数を見ながら出力していたのだけど、なんか終了しない。むむむ?と思って調べてみたら。count() メソッドは limit、 ...
CakePHP4

[CakePHP4.x]複数認証の実装方法

CakePHP4で認証システムを実装するのは若干以前より面倒になった感があります。通常の実装方法に関しては、こちらで以前記事にしました。一般的な実装方法についてわからない場合はcakebookの下記のページを参照すればよいかと思います。今回...
CakePHP3.x

CakePHP4のselectの一括カラム登録方法

以前、CakePHPのクエリビルダ―でselectでカラムを登録すると他が消えてしまって、全部登録しなおさなくちゃいけなくてめんどくさいという記事を書きました。でも、その後しらべたら、あんなことしなくても簡単にselectのカラムを一括登録...
CakePHP4

[CakePHP4] Impossible to generate condition with empty list of values for field ってなに

Impossible to generate condition with empty list of values for field (モデル名.カラム名)こんなエラーが発生しましたが、コードの位置と発生した場所が違うのでいまいちわかり...
開発

CakePHPのselectが面倒くさいんじゃ!

追記その後、こんなことしなくてももっと簡単にできることが判明。こちらのリンクを参照してください。忘備録としてこのページも残しておきます。CakePHPのQueryビルダーでカラムをselectするのはちょっと面倒です。パフォーマンス的には本...
CakePHP4

helperなどでのURL指定方法の命名規則

CakePHP4でprefixを出したくてこんな感じに書いたらエラーになりました。$this->Url('link-title', ); エラー内容 A route matching "array ( 'prefix' => 'api', ...
CakePHP

==と===の罠

PHPは変数の型のチェックがいい加減なんで、仕様をよく理解していないと変なところでハマったりします。CakePHPのコントローラー処理で、仮に<?php//コントローラーでpublic function view($user_id = nu...
PHP

[PHP]変数の中身を変数名に使いたい

変数の中身を変数名に使いたい時ってありますよね。そういう時は可変変数というものを使います。<?php$hoge = 'ほげだよ';$fuga = 'hoge';echo $$fuga;実行例ちなみにオブジェクトのプロパティーとして使いたい場...
CakePHP3.x

[CakePHP4]どこでもloadModel~

コントローラー以外でもModelを使いたい場合ってありますよね?え?使うなって。でもコンソールとかコンポーネントとかで使いたい場合あるでしょう?そんなときの方法です。環境CakePHP4(たぶんCakephp3も同じ)方法traitを使って...
CakePHP4

Queryビルダーに渡す無名関数でエラー

Queryビルダーに渡す無名関数で下記のようなエラーが出る場合。Argument 1 passed to App\Controller\コントローラー名Controller::App\Controller\{closure}() must ...
CakePHP4

ErrorControllerでログインユーザー情報が取得できない。

Authentication Component 2.xでErrorControllerでログインユーザー情報が取得できない問題に直面しました。エラー画面でもユーザー情報を表示するためにログイン情報が欲しいのだけなのですが、$this->A...
CakePHP4

Entityを手動で書き換えたら保存されない場合は?

CakePHPのEntityの仕組みは、わかれば便利なんですが、知らないとちょっと困る場合が多いです。patchEntity()を通してEntityを生成する場合は問題ないのですが、手動でEntityを書き換えた場合はいろいろハマるポイント...