characterというテーブルを作ったらエラーが出た | Unity Forum | Tech Stadium Forum

characterというテーブルを作っ...
 
通知
すべてクリア

characterというテーブルを作ったらエラーが出た  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1348
31/08/2022 10:27 pm  
CakePHPのクエリについて質問です。
characterというテーブルを作り
Nameフィールドを取り出してキャラクターリストを取得しようとしています。
$this->loadModel('character');
$query = $this->character->find()->select('Name');
$charalist = $query->toArray();
として$charalistをテンプレートに渡したところ
画像のようなエラーになってしまいました。
 
SQLの構文エラーのようなのですがどのように直したらいいでしょうか?

引用
Teacher
(@admin)
メンバー Admin
結合: 4年前
投稿: 1316
31/08/2022 10:28 pm  

ざっとコードを確認しましたが Character を別名で作り直した方が早く解決できそうです。
例えば PlayerCharacter ( player_character ) などで新規テーブル作るのと同じように。

Character だけが上手く操作できていない理由として考えられそうなのは以下です。
 
・Character はSQL予約語なので、想定通りのクエリが発行されていない
参考:
 
・CakePHPのデフォルト仕様で find 時にバッククオートの処理がされない
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,

返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1348
31/08/2022 10:29 pm  

なるほど予約語でしたか。
おっしゃる通り別名のテーブルで作り直してみたら無事実装できました。


返信引用
共有:
タイトルとURLをコピーしました