バージョン選択
フォーラム
メニュー
オンライン状況
|
|
60 人のユーザが現在オンラインです。 (38 人のユーザが フォーラム を参照しています。) |
|
|
その他
投稿者 |
スレッド |
ゲスト |
投稿日時: 2016/9/9 12:27
対応状況: −−−
|
|
Jobエンティティの取得方法について バージョン3.0.10です。 プラグインを開発していてJobエンティティを容易に取得できなかったので、取得方法について質問させて下さい。
本来であれば、Jobエンティティの取得は、
#code1 $job = $app->['eccube.repository.master.job']->findOneBy( array( 'name' => '公務員' ) );
といった記述で取得できると思いますが、これでは取得できません。
調査した結果、Eccube\ServiceProvider\EccubeServiceProvider->register($app)にて、Jobリポジトリの登録が行われていません。よって取得できないのだと推察しています。
仕方がないので、作成しているプラグインのServiceProvider->register($app)に、
#code2 $app['eccube.repository.master.job'] = $app->share( function() use($app){ return $app['orm.em']->getRepository('Eccube\Entity\Master\Job'); } );
と記述する事で、#code1の記述でJobエンティティを取得できるようになりました。
Jobエンティティを取得できるようになり、プラグインが意図した動作を行えるようになりましたが、いくつかの疑問が湧いてきました。以下に記します。
1.本来であれば、#code2のコードがEccube\ServiceProvider\EccubeServiceProvider->register($app)に記述されており、個別のプラグインで#code2を記述する必要はないのでは?
2.もしくは、Jobエンティティの取得は禁忌されている事象で、取得してはいけない、だからJobリポジトリが登録されていないのではないか?
1と2、もしくは別の理由(例えば別の取得方法がある等)があって#code1の記述ではJobエンティティの取得ができないのでしょうか?
御教授の程、宜しくお願い致します。
|
|
|
|
統計情報
総メンバー数は89,083名です
総投稿数は110,032件です
|