バージョン選択

フォーラム

メニュー

オンライン状況

33 人のユーザが現在オンラインです。 (29 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 32
ec-akiran もっと...

PR

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

サイト内検索

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

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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
居住地:
投稿: 23
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エンジニア。
EC-CUBEインテグレートパートナー。

468
投稿日時: 2017/3/7 9:05
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 572
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
居住地:
投稿: 15
Re: コアコードをカスタマイズしてのテーブル追加につきまして
Yuya.u様
468様

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

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

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


----------------
PHPエンジニア。
EC-CUBEインテグレートパートナー。

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

 



ログイン


EC-CUBEガイドブック

統計情報

総メンバー数は19,518名です
総投稿数は81,798件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1623
4
yuh
1346
5
red
1055
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
782
10
umebius
671
11
tao_s
646
12 sumida 638
13
homan
633
14 karin 609
15
468
572
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

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