コンソールからコントローラを実行しようとしていますが、これはcronジョブで使用されます。 httpコントローラで次のコードブロックを実行すると、完全に機能します。 しかし、私は、コンソールコントローラに同じコードブロックを使用して、コマンドラインからそれを呼び出すときに、私は、データベース・エラー・メッセージが出ます:zend framework 2コンソールアプリケーションからデータベースにアクセスできない
「文を実行できませんでした(3D000 - 1046 - いいえ、データベースが選択されていない」
Iをそれはデータベース名を取得し、おそらく設定のlocal.phpファイルから他のパラメータされていない理由を理解することはできません。 を任意のヒントが
// CODE BLOCK IN CONTROLLER
$sm = $this->getServiceLocator();
$dbAdapter = $sm->get('Mymodule\Service\Db');
$actualDatabaseTableName = 'Operator';
$OperatorTableGateway = new TableGateway($actualDatabaseTableName,$dbAdapter);
$table = new OperatorTable($OperatorTableGateway);
$result = $table->getOperatorList();
var_dump($result->current());
And model class is
namespace Mydodule\Model;
use Zend\Db\TableGateway\TableGateway;
use Zend\Db\Sql\Select;
class OperatorTable {
protected $tableGateway;
public function __construct(TableGateway $tableGateway) {
$this->tableGateway = $tableGateway;
}
public function getOperatorList() {
$select = new Select('Operator');
$select->columns(array(
'opId'=>'OperatorID',
'ocode'=>'OperatorCode'
));
$resultSet = $this->tableGateway->selectWith($select);
return $resultSet;
}
}