Zendframework 2 の初心者です。2 つのテーブルを結合して結果を表示しようとしています。
2つのテーブルは次のとおりです。作品とアーティスト。テーブルは、artist_id に基づいて結合されます。
STEP 1>モデルに2つのクラス(Works、Artist)を作成 STEP 2>WorksTableに以下のコードを記述
class WorksTable extends AbstractTableGateway
{
protected $table ='works';
public function __construct(Adapter $adapter)
{
$this->adapter = $adapter;
$this->resultSetPrototype = new HydratingResultSet(
new ArraySerializableHydrator(),
new Works()
);
$this->resultSetPrototype->buffer();
$this->initialize();
}
public function fetchAll()
{
$select = $this->getSql()->select();
$select->join('works','artists.artist_id = artist_id ');
//create paginator object to display records
$paginator = new Paginator(
new DbSelect($select, $this->adapter, $this->resultSetPrototype)
);
return $paginator;
}
}
STEP 3>コントローラーで次のコードを定義しました
public function searchAction()
{
$request = $this->getRequest();
$paginator = $this->getWorksTable()->fetchAll();
// $paginator->setItemCountPerPage(12);
$vm = new ViewModel(array(
'poster' => $paginator,
));
$vm->setVariable('paginator', $paginator);
return $vm;
}
ステートメントの場合 $paginator->setItemCountPerPage(12); エラーを取得する
メッセージ:
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'works'
誰もこのエラーに遭遇しましたか? これを解決する方法についてのアイデアはありますか?