機能要望 > その他 > Jobエンティティの取得方法について |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 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エンティティの取得ができないのでしょうか? 御教授の程、宜しくお願い致します。 |
|
red |
投稿日時: 2016/9/9 12:56
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: Jobエンティティの取得方法について $app['orm.em']->getRepository('Eccube\Entity\Master\Job')->findOneBy
じゃダメなんでしょうか?
|
ゲスト |
投稿日時: 2016/9/9 14:09
対応状況: 解決済
|
Re: Jobエンティティの取得方法について ご回答頂き、ありがとうございます。
試しに"$app['orm.em']->getRepository("でEC-CUBE3のファイル群を検索したところ、御提示下さった記述でリポジトリを取得しているファイルがいくつか抽出されました。 エンティティを取得する際は、先に挙げました#code1の記述がEC-CUBE3の作法と思っておりましたが、このような記述もありなのですね。 独自のプラグインで先に挙げました#code2のように$appに値を追加する事に不安もありましたので、御提示下さった取得方法を用いるようコードを修正します。 ありがとうございました。 |
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |