PropertyAdminでこのコードを使用すると、Adminが拡張されます。
public function createQuery($context = 'list') { $user = $this->getConfigurationPool()->getContainer()->get('security.context')->getToken()->getUser(); $query = $this->getModelManager()->createQuery($this->getClass(), 'o'); $query->where('o.Creator=:creator')->setParameter("creator", $user); return $query; }
「リスト」の結果を、ログに記録された管理者に「属している」人に限定することができました。ログに記録された管理者によって作成されたプロパティ(つまりエンティティ)のみ。
問題:URL(1、2 ...などのID値)を手動で変更することにより、他のユーザーに属するプロパティを編集できます。編集アクションの場合、上記のクエリはまったく呼び出されません。その動作を変更するにはどうすればよいですか?
2.コントローラーにクエリを配置する代わりに、PropertyRepositoryクラスからクエリをフェッチできますか?これにより、単体テストを記述できるモデルのロジックが維持されます。
3.試しています:ProductAdmin extends AdminHelper {....} AdminHelper extends Admin {....}
ただし、「D:_development \ rent2 \ app / config \routing.yml」から「リソース「D:_development \ rent2 \ app/config。」をインポートできません」と表示されません。
AdminHelperは抽象クラスですが、Sonataはそれを読み取ります。解決策はありますか?