バージョン選択

フォーラム

メニュー

オンライン状況

25 人のユーザが現在オンラインです。 (18 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 25
もっと...

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > その他 > コアコードをカスタマイズしてのテーブル追加につきまして

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
boonen
投稿日時: 2017/3/7 8:29
対応状況: −−−
新米
登録日: 2017/3/7
居住地:
投稿: 10
コアコードをカスタマイズしてのテーブル追加につきまして
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
居住地:
投稿: 15
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の場所、クラス名記述などがプラグイン時のままではないですか?


----------------
PHPエンジニア。Symfony, Silexを得意としています。

EC-CUBEインテグレートパートナー。ご相談ください。

468
投稿日時: 2017/3/7 9:05
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 402
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ファイルのファイル名や保存する場所、内容の記述に何か誤りは無いでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

boonen
投稿日時: 2017/3/7 10:09
対応状況: −−−
新米
登録日: 2017/3/7
居住地:
投稿: 10
Re: コアコードをカスタマイズしてのテーブル追加につきまして
Yuya.u様
468様

ご返信ありがとうございます!
namesやファイル名、設置場所は何度か見返したのですが、深夜だったので誤りがあるのかもしれません。
再度確認いたします。

app/console等でEntity作成しないとエラーになってしまうのかと思ったのですが、そういったことは無いのですね。
ありがとうございます!
Yuya.u
投稿日時: 2017/3/7 10:14
対応状況: −−−
半人前
登録日: 2017/3/6
居住地:
投稿: 15
Re: コアコードをカスタマイズしてのテーブル追加につきまして

はい、コマンドで作ることもできますがけっこう難しいので、エディタでファイルの作成や移動して問題ないです。


----------------
PHPエンジニア。Symfony, Silexを得意としています。

EC-CUBEインテグレートパートナー。ご相談ください。

boonen
投稿日時: 2017/3/7 10:29
対応状況: −−−
新米
登録日: 2017/3/7
居住地:
投稿: 10
Re: コアコードをカスタマイズしてのテーブル追加につきまして
ありがとうございます!
こんなに早く回答いただけると思ってなかったので、感激しております。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 

ログイン


EC-CUBEペイメント

統計情報

総メンバー数は19,116名です
総投稿数は79,891件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1618
4
yuh
1313
5
red
1027
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
778
10
tao_s
646


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.