find
関数を使用して、ID でデータベース テーブルをクエリしようとしています。テーブルには 4 つの主キー (3 つの外部キー) があります。
これは、テーブル データ ゲートウェイのコードです。
class Application_Model_DbTable_Assigneduser extends Zend_Db_Table_Abstract
{
protected $_name = 'assigneduser';
}
これは Mapper のコードです:
public function find($id)
{
$result = $this->getDbTable()->find($id);
if(count($result) == 0)
return;
$row=$result->current();
$assignedUser = new Application_Model_AssignedUser();
$assignedUser->setId($row->id)
->setIdProject($row->id_project)
->setIdUser($row->id_user)
->setIdTask($row->id_task);
}
マッパーをインスタンス化するために使用するコードと、メソッドを使用する場所find
:
public function indexAction()
{
echo "<xmp>";
$user=new Application_Model_AssignedUserMapper();
print_r($user->find(3));
echo '</xmp>';
}
print_r
andタグを使用しxmp
て、コードが返すものをよく調べました。私が受け取る例外メッセージは次のとおりです。
Message: Too few columns for the primary key
それを修正するために何をすべきかわかりません。何か案が?ありがとうございました!