CakePHPでNotice (8): Use of undefined constant Customerが出た!原因と対処方法

いつものごとく、即戦力になるための PHPシステム開発の教科書を写経しているとまたまたエラーが発生!

目次

問題の内容

この本のP147~p152で、

  • Customer.php
  • Company.php
  • Prefecture.php

の3つのモデルを記述して、ファイルをそれぞれUPしたら、こんなエラーが出ました。

  • Notice (8): Use of undefined constant Customer – assumed ‘Customer’ [CORE/Cake/Utility/ClassRegistry.php, line 168]

1

“Notice (8): Use of undefined constant Customer”でぐぐってみましたが、私の苦手な英文や、素のPHPに関する検索結果しか返ってこなかった…。

エラーの内容からして、「Customerというモデルクラスが定義されてまへんで~」というところまでは分かるんですが…。

解決方法

仕方がないので、3つあるモデルファイルをじーっと眺めていたら、間違いを発見しました。注目するのは6行目です。

[php]
<?php
App::uses(‘AppModel’, ‘Model’);
class Company extends AppModel {
public $hasMany = array(
‘Customer’ => array(
‘className’ => Customer,
‘foreignKey’ => ‘company_id’,
‘dependent’ => false, ) ); }
[/php]

“‘className’ => Customer,”となっていますが、正しくは“‘className’ => ‘Customer’,”ですね。Customerのシングルクォーテーションが抜けてました。

補足説明

間違い探しをしているときに合わせて読んでいた、CakePHP2 実践入門 (WEB+DB PRESS plus)のP114にhasmanyのオプションの1つとして、’className’について説明されています。

‘className’は所属先のデータを扱うモデルクラス。省略時は設定名と同一。

今回、所属先のデータは’Customer’で、その指定が正しくできていなかったので、”Use of undefined”になったんだと思います。

〔参考サイト〕

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次