2016-10-03 11 views
0

コンソールからコントローラを実行しようとしていますが、これは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; 
    } 
} 

答えて

0

を高く評価しているので、私は最終的に問題を発見した。これは、すべての環境価値についてです。 HTTPSリクエストでApacheのEVN値が取得されましたetting。 application.config.phpの設定は $ env = getenv( 'APP_ENV')でしたか? : 'prod';

私のprod.local.phpは種類が空いていたので、私は動作しませんでした。

コンソールアプリケーションを使用すると、apacheのenv値の設定が私の場合には行かないでしょう。コンソールはapplication.config.phpの設定を使用します

関連する問題