1052 Column ‘id’ in where clause is ambiguous

cakePHPでのDBの扱いでまたくだらないことで躓いたのでメモ。

Modelのアソシエーション? belongsToとかでModelの連結をしていると、findメソッドで片方のidを指定していたつもりが、belongsToをした両方のテーブルのどちらを指しているかわからない、という状況になってしまいます。

1052 Column ‘id’ in where clause is ambiguous

こんな感じのエラーが出ると思われます。

解決方法は簡単で、

$this->Model->find(“first”,array(
“conditions”=>array(
“id”=>$id
)));
としていたのを
$this->Model->find(“first”,array(
“conditions”=>array(
“Model.id”=>$id
)));
とするだけです。わかりにくいかもですが、Model名をカラム名とともに指定するだけです。

フレームワークはホントくだらんとこで引っかかる・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です