1

'Interestslogs'というテーブルがあり、モデルの名前はInterestlogです。

Cakephpのそのテーブルからidに従ってclient_idを取得する必要があります。

$client_id = $this->Interestslog->find('first',array(
        'conditions' => array('Interestslogs.id' => $id),
        'fields' => array('Interestslogs.client_id'),
        )
    );

ただし、データベースエラーが発生します。

Database Error

エラー:SQLSTATE [42S22]:列が見つかりません:1054不明な列'フィールドリスト'のInterestslogs.interest_id'

SQLクエリ:SELECT Interestslogsinterest_idFROM efainterestslogs左のInterestslog参加者としてefainterestsAS InterestON(Interestsloginterest_id= Interestid)LEFTJOIN efaclientsAS ClientON(Interestslogclient_id= Clientid)WHERE Interestslogsid= 1 LIMIT 1

4

4 に答える 4

1

複数形の「s」を削除する

$client_id = $this->Interestslog->find('first',array(
    'conditions' => array('Interestslog.id' => $id),
    'fields' => array('Interestslog.client_id'),
    )
);

また、モデルを確認してください。すべてのもの (Client と Interestslog) が適切に関連付けられていれば、エラーは発生しません。

于 2013-06-28T14:24:25.687 に答える
0

あなたは試すことができます:(あなたの関係が大丈夫なら)

$this->Interestslog->recursive = -1;
$client_id = $this->Interestslog->find('first',array(
     'conditions' => array('Interestslogs.id' => $id),
     'fields' => array('Interestslogs.client_id'),
    )
);
于 2012-07-29T14:03:23.933 に答える
0

Interestlogs テーブルに interest_id 列があるかどうかを確認します。

または試してみてください

$variable_temp = $this->Interestslog->findById($id);
//debug($variable_temp);
$client_id = $variable['client_id'];
于 2012-07-29T17:23:08.960 に答える
0
$client_id = $this->Interestslog->find('first',array(
        'conditions' => array('Interestslog.id' => $id),
        'fields' => array('Interestslog.client_id'),
        )
    );

テーブル名は、cakephp によって自動的に追加されるため、最後の "s" を付けずに条件/フィールド配列に記述する必要があります。

于 2013-05-14T19:15:13.957 に答える