CakePHP のモデル名と同じメソッドを作るとヘルパーでエラーが出る

CakePHP のモデルでモデル名と同じメソッドを作るとフォームヘルパーで以下のエラーが出るようになりました。

1
2
3
Notice (8): Trying to get property of non-object [CORE/cake/libs/view/helper.php, line 458]
Warning (2): array_keys() expects parameter 1 to be array, null given [CORE/cake/libs/view/helper.php, line 458]
Warning (2): in_array() expects parameter 2 to be array, null given [CORE/cake/libs/view/helper.php, line 458]

いろいろ調べても Web 上にも解決策はないし自分でも何を間違えたのか分かりませんでしたが、調べること40分。適当に先ほど作ったモデルの中に同じ名前のメソッドを発見。これを削除したらエラーがなくなりました。ちなみに今回のエラーの元になったモデルは以下。

1
2
3
4
5
6
7
8
9
10
11
<?php
class Signup extends AppModel
{
	var $name = 'signup';
	var $useTable = 'members';
 
	function signup()
	{
		// test
	}
}

コメント

  1. 通りすがりさんのコメント

    これって、モデルのコンストラクターをオーバーライドしてしまっているってことですよね?
    モデルのコンストラクターはいろんなことをしているので、それをオーバーライドしてしまうと不思議なことがたくさん発生します。