2

このエラーがどこから発生したのかを見つけるのに苦労しています:

エラー: SQLSTATE[42S22]: 列が見つかりません: 1054 不明な列 'HomeVisitorDemographic.Last Name' が 'field list' にあります

まず正常に$this->set('homeVisitor', $this->HomeVisitorDemographic->find('list'));動作します。

実行しようとすると問題が発生します。

$this->set('homeVisitor', $this->HomeVisitorDemographic->find('list', array(
    'fields' => array('id','Last Name'),
)));

今私が読んだほとんどのものは、問題は「姓」フィールドが存在しないことであると言うでしょう。それはまさにエラーが言っていることです. Cake が実行しようとしている SQL は次のとおりです。

SQL Query: SELECT `HomeVisitorDemographic`.`id`, `HomeVisitorDemographic.Last Name`
    FROM `cake`.`HomeVisitorDemographics` AS `HomeVisitorDemographic` WHERE 1 = 1

そして私のデータベースから:

mysql> describe HomeVisitorDemographics;
+------------------+--------------+------+-----+---------+----------------+
| Field            | Type         | Null | Key | Default | Extra          |
+------------------+--------------+------+-----+---------+----------------+
| id               | int(11)      | NO   | PRI | NULL    | auto_increment |
| Last Name        | varchar(70)  | NO   |     | NULL    |                |
| First Name       | varchar(70)  | NO   |     | NULL    |                |
+------------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql>

ですから、なぜフィールドを引っ張ることができないのか、本当にちょっと混乱しています。多分私はただ疲れていて、簡単なことを見落としていますか?そこにフィールドが存在することがわかります。サイトの他のページからも姓を取得するため、姓が存在し、データがそこにあることがわかります. 私のデバッグ レベルは 2 に設定されているため、キャッシュは 10 秒後に期限切れになります。何か案は?

4

2 に答える 2

-1

試す

... 'fields' => array('id' => 'Last Name'),

単純なタイプミス……。

于 2013-06-18T00:12:30.117 に答える