通知
すべてクリア
31/08/2022 10:27 pm
CakePHPのクエリについて質問です。
characterというテーブルを作り
Nameフィールドを取り出してキャラクターリストを取得しようとしています。
Nameフィールドを取り出してキャラクターリストを取得しようとしています。
$this->loadModel('character'); $query = $this->character->find()->select('Name'); $charalist = $query->toArray();
として$charalistをテンプレートに渡したところ
画像のようなエラーになってしまいました。
画像のようなエラーになってしまいました。
SQLの構文エラーのようなのですがどのように直したらいいでしょうか?
31/08/2022 10:28 pm
ざっとコードを確認しましたが Character を別名で作り直した方が早く解決できそうです。
例えば PlayerCharacter ( player_character ) などで新規テーブル作るのと同じように。
Character だけが上手く操作できていない理由として考えられそうなのは以下です。
・Character はSQL予約語なので、想定通りのクエリが発行されていない
参考:
参考:
・CakePHPのデフォルト仕様で find 時にバッククオートの処理がされない
app_default.php
app_default.php
/** * Set identifier quoting to true if you are using reserved words or * special characters in your table or column names. Enabling this * setting will result in queries built using the Query Builder having * identifiers quoted when creating SQL. It should be noted that this * decreases performance because each query needs to be traversed and * manipulated before being executed. */ 'quoteIdentifiers' => false,
31/08/2022 10:29 pm
なるほど予約語でしたか。
おっしゃる通り別名のテーブルで作り直してみたら無事実装できました。