質問 > その他 > コアコードをカスタマイズしてのテーブル追加につきまして |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
boonen |
投稿日時: 2017/3/7 8:29
対応状況: −−−
|
半人前 登録日: 2017/3/7 居住地: 投稿: 15 |
コアコードをカスタマイズしてのテーブル追加につきまして EC-CUBE初心者です。
EC-CUBEを使用して、マッチングサイトを構築しようと考えております。 お手数おかけして大変恐縮ですが、ご回答いただければ幸いです。 [EC-CUBE] 3.0.14 新規インストール [レンタルサーバ] さくらVPS [OS] CentOS release 6.8 [PHP] PHP 7.0.16 [データベース] MySQL 5.1.73 [WEBサーバ] Apache/2.2.15 [ブラウザ] Chrome [導入プラグインの有無] 無し [カスタマイズの有無] [現象] MemberテーブルとのoneToOneリレーションを持つテーブルをプラグインで導入することを試みました。 ymlファイルの、oneToOne定義の名称?部分にMemberを入れておくと、$Member is not definedとなり、うまく動きませんでした。 要件的にプラグインで実装するのは複雑になりそうなので、方針を転換し、コアコードをカスタマイズすることにしました。 プラグインジェネレータを使って作成した諸ファイルをsrc/Eccube/配下に移動しました。 画面の表示(コントローラーの定義とtemplate)は動いたのですが、新規テーブル(Fortuneteller)のEntity定義がうまくいかないです。 下記のようなエラーがでます。 dcm.ymlファイルとEntityファイルを適切な場所に移動すれば動作するかと思ったのですが、他に何か必要な作業がありますでしょうか? MappingException in MappingException.php line 75: No mapping file found named 'Eccube.Entity.Fortuneteller.dcm.yml' for class 'Eccube\Entity\Fortuneteller'. in MappingException.php line 75 at MappingException::mappingFileNotFound('Eccube\Entity\Fortuneteller', 'Eccube.Entity.Fortuneteller.dcm.yml') in DefaultFileLocator.php line 120 at DefaultFileLocator->findMappingFile('Eccube\Entity\Fortuneteller') in FileDriver.php line 115 at FileDriver->getElement('Eccube\Entity\Fortuneteller') in YamlDriver.php line 55 at YamlDriver->loadMetadataForClass('Eccube\Entity\Fortuneteller', object(ClassMetadata)) in MappingDriverChain.php line 102 at MappingDriverChain->loadMetadataForClass('Eccube\Entity\Fortuneteller', object(ClassMetadata)) in ClassMetadataFactory.php line 116 at ClassMetadataFactory->doLoadMetadata(object(ClassMetadata), null, false, array()) in AbstractClassMetadataFactory.php line 332 at AbstractClassMetadataFactory->loadMetadata('Eccube\Entity\Fortuneteller') in AbstractClassMetadataFactory.php line 216 at AbstractClassMetadataFactory->getMetadataFor('Eccube\Entity\Fortuneteller') in EntityManager.php line 265 at EntityManager->getClassMetadata('Eccube\Entity\Fortuneteller') in DefaultRepositoryFactory.php line 67 at DefaultRepositoryFactory->createRepository(object(EntityManager), 'Eccube\Entity\Fortuneteller') in DefaultRepositoryFactory.php line 50 at DefaultRepositoryFactory->getRepository(object(EntityManager), 'Eccube\Entity\Fortuneteller') in EntityManager.php line 665 at EntityManager->getRepository('Eccube\Entity\Fortuneteller') in EccubeServiceProvider.php line 260 at EccubeServiceProvider->Eccube\ServiceProvider\{closure}(object(Application)) in Pimple.php line 126 at Pimple::{closure}(object(Application)) in Pimple.php line 83 at Pimple->offsetGet('eccube.repository.fortuneteller') in FortunetellerController.php line 37 at FortunetellerController->index(object(Application), object(Request)) at call_user_func_array(array(object(FortunetellerController), 'index'), array(object(Application), object(Request))) in HttpKernel.php line 144 at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 64 at HttpKernel->handle(object(Request), '1', true) in Application.php line 586 at Application->handle(object(Request)) in Application.php line 563 at Application->run() in index_dev.php line 104 doctrineでentityを作成しなおせばいいのかと思いましたが、うまく動きませんでした。 /vendor/bin/doctrine orm:generate:entities Fortuneteller [Doctrine\Common\Persistence\Mapping\MappingException] File mapping drivers must have a valid directory path, however the given path [/home/eccube/app/Plugin/Fortuneteller/Resource/doctrine] seems to be incorrect! よろしくお願いいたします。 |
Yuya.u |
投稿日時: 2017/3/7 9:01
対応状況: −−−
|
半人前 登録日: 2017/3/6 居住地: 投稿: 24 |
Re: コアコードをカスタマイズしてのテーブル追加につきまして MappingException in MappingException.php line 75:
No mapping file found named 'Eccube.Entity.Fortuneteller.dcm.yml' for class 'Eccube\Entity\Fortuneteller'. エラーの通りで、EntityとYAMLのマッピングがうまくいっていないと思います。本体へ移動したファイル名やクラス名、あるいは Eccube.Entity.Fortuneteller.dcm.ymlの場所、クラス名記述などがプラグイン時のままではないですか?
|
468 |
投稿日時: 2017/3/7 9:05
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: コアコードをカスタマイズしてのテーブル追加につきまして MappingException in MappingException.php line 75:
No mapping file found named 'Eccube.Entity.Fortuneteller.dcm.yml' for class 'Eccube\Entity\Fortuneteller'. 上記のメッセージですが、 Eccube.Entity.Fortuneteller.dcm.ymlのファイルが見つからないというエラーメッセージがでているような気がしますが、 ymlファイルのファイル名や保存する場所、内容の記述に何か誤りは無いでしょうか?
|
boonen |
投稿日時: 2017/3/7 10:09
対応状況: −−−
|
半人前 登録日: 2017/3/7 居住地: 投稿: 15 |
Re: コアコードをカスタマイズしてのテーブル追加につきまして Yuya.u様
468様 ご返信ありがとうございます! namesやファイル名、設置場所は何度か見返したのですが、深夜だったので誤りがあるのかもしれません。 再度確認いたします。 app/console等でEntity作成しないとエラーになってしまうのかと思ったのですが、そういったことは無いのですね。 ありがとうございます! |
Yuya.u |
投稿日時: 2017/3/7 10:14
対応状況: −−−
|
半人前 登録日: 2017/3/6 居住地: 投稿: 24 |
Re: コアコードをカスタマイズしてのテーブル追加につきまして はい、コマンドで作ることもできますがけっこう難しいので、エディタでファイルの作成や移動して問題ないです。
|
boonen |
投稿日時: 2017/3/7 10:29
対応状況: −−−
|
半人前 登録日: 2017/3/7 居住地: 投稿: 15 |
Re: コアコードをカスタマイズしてのテーブル追加につきまして ありがとうございます!
こんなに早く回答いただけると思ってなかったので、感激しております。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |