2017-05-14 21 views
0

私はsymfony(2.5。)プロジェクトをいくつかの友人と一緒に作業しています。墜落し続ける新しいバージョンのsymfony(2.)とキャッシュをクリアしようとしましたが、何も動作していないようです。Symfony 'SQLSTATE [HY000] [1049]不明なデータベース' symfony ''

parameters: 
     database_driver: pdo_mysql 
     database_host: 127.0.0.1 
     database_port: 3306 
     database_name: testdb 
     database_user: root 
     database_password: null 
     mailer_transport: smtp 
     mailer_host: 127.0.0.1 
     mailer_user: null 
     mailer_password: null 
     secret: ThisIsVerySecret 
     locale: en 
     debug_toolbar: true 
     debug_redirects: false 
     use_assetic_controller: true 

は、私は、問題の原因は、何らかの形でsymfonyは我々がここで

parameters.yml 

で指定したデータベースの代わりに「デフォルト」のデータベースにアクセスしようとするファイルされていると信じて

Config.yml - >教義一部

# Doctrine Configuration 
    doctrine: 
     dbal: 
     driver: "%database_driver%" 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8 
     orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     auto_mapping: true 

paginaController

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache; 

class PaginaController extends Controller 
{ 

    /** 
    * @Template 
    */ 
    public function partnersAction() 
    { 
     return array(); 
    } 
    /** 
    * @Template 
    * @Cache(expires="tomorrow") 
    */ 
    public function homeAction() 
    { 
     return array(); 
    } 

    /** 
    * @Template 
    */ 
    public function geschiedenisAction() 
    { 
     return array(); 
    } 

    /** 
    * @Template 
    */ 
    public function profielAction() 
    { 
     return array(); 
    } 

    /** 
    * @Template 
    */ 
    public function reunistenAction() 
    { 
     return array(); 
    } 

    /** 
    * @Template 
    */ 
    public function linksAction() 
    { 
     return array(); 
    } 
} 

私たちは何が起こるかを見るためにsymfonyと呼ばれる空のデータベースを作成しました。 最初にページが読み込まれますが、ログインしようとすると同じエラーが表示されます(testdbデータベース内のデータにアクセスする必要があるため)。このエラーで

Base table or view not found: 1146 Table 'symfony.leden' doesn't exist 

、それはまた、代わりtestdb -databaseの、symfony -databaseを指します。

この問題を解決し、正しいデータベース(testdb)を認識し、symfonyと呼ばれる無尽蔵のデータベースにアクセスしないようにsymfonyを入手する方法はありますか?

+0

あなたのconfig.ymlに 'doctrine:'セクションの内容を投稿できますか? –

+0

私はその部分を追加しました!あなたの助けてくれてありがとう(あらかじめ!)。 – Pim

+0

オットンピム、私はそれを見ます。ありがとう。そこに何も間違っていません。 (URLに 'app_dev.php'を追加して)[このリンクを参照](http://symfony.com/doc/current/configuration/environments.html#executing-an-application-in-異なる環境)は、どのコントローラを使用しているのか、どのラインを表示していますか?あなたはEntityManagerを取得するコントローラから関連するコードを投稿できますか? Symfonyを指定したことがありますか?ああ、あなたが 'php bin/console cache:clear --env = prod'を使ってキャッシュをクリアしていることを確認してください。それが適切かどうかはわかりません。 –

答えて

0

データベースを作成しましたので、その後、あなたのparameters.ymlファイルでこれを変更する必要があり、symfony呼ば:

database_name: symfony 

それとも、実行できるコマンドラインから:

php bin/console doctrine:database:create 

これにより、parameters.ymlファイルにデータベースが作成されます。

また、MySQLのユーザー名とパスワードを設定する必要があります。デフォルトは 'root'と 'null'なので、通常は動作しません。


EDIT#2 は、コメントのフィードバックからのキャッシングの問題のようですね。コマンドラインから次のコマンドを実行してください:

php bin/console cache:clear --env=prod 

これが機能するかどうかを確認してください。

+0

こんにちはAlvin、ありがとう、あなたの返信を!私は新しいデータベースを作成する方法を認識していますが、symfonyデータベースを使用したくないのです。これは過去の問題をどのように回避したかの例でした。 paramaters.ymlで 'testdb'を使用することを指定した場合でも、symfonyがsymfonyデータベースを参照する理由を知っていますか? – Pim

+0

config.ymlファイルの 'doctrine:'セクションにあなたが持っているものを見たら私の投稿を更新します。私はまたあなたにコントローラー(関連するコードのみ)を見る必要があるかもしれません。これは「簡単な」修正でなければなりません。たぶんどこかのタイプミスがあるだけでしょう。 –

+0

私はこれをしました。ページは**レンダリングされました。(エラーはまったくスローされません)。非常に奇妙な。 'app_dev.php'がなければクラッシュします。 'app_dev.php'でログインするのと同じです。私はログインできますが、クラッシュすることはありません。私はコントローラを追加します – Pim

関連する問題