0
我想從控制檯運行一個控制器,它將用於cron作業。當我在http控制器中運行以下代碼塊時,它可以很好地工作。 但是,當我使用相同的代碼塊在控制檯控制器和從命令行調用它,我得到數據庫的錯誤消息:zend框架2不會從控制檯應用程序訪問數據庫
「語句無法執行(3D000 - 1046 - 無數據庫中選擇」
我不明白爲什麼它不會從配置的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;
}
}