cakephpでオブジェクトにフィールドがあるかどうかをチェックする方法
2022年12月20日
cakephpで、オブジェクトにフィールドが存在するかどうかをチェックする方法についてです。
cakephpで、オブジェクトに特定のフィールドが存在しているかをチェックしようと思ったのですが、phpで使われている一般的な方法である
property_exists
を使うことができませんでした。(存在しているフィールドでもfalseが返ってくる)
理由としては、プロパティそのものを参照しているわけではない仕様になっているようです。
cakephpでは、オブジェクトはTablesクラスを継承しているのですが、Tables Classに、該当のモデルにフィールドが存在しているかどうかをチェックする関数 hasFIeld()がありました。
$this->Model->hasField($fieldName)
上記の関数で、該当のテーブル(モデル)が対象のフィールドを持つ場合に、trueを、そうでない場合にはfalseを返します。