2011-06-23 14 views
2

私のプロジェクトはSymfony 1.3.11を使用しています。PHPのバージョンは5.3.3です。Symfony 1.3:バックエンドフィルタフィールドのデータをオーバーライドする必要があります

は私が私の場合、私の問題を説明してみましょう:

  1. 我々はユーザーの別の種類だけでなく、「ユーザー」と「管理者」(コマンドでsfGuardPluginを使用)を追加したいです。私は "ビジネス"を追加しました。そして、私は彼に管理モジュールの1つだけに許可を与えました - "購入"(自分自身といくつかの条件の下で - サイト上で他人の購入を行います)。
  2. 「ビジネス」ユーザーは、サイトに登録されている1つ以上のパートナー(企業)に関連付けることができ、ビジネスオーナーまたは代理人を効果的に扱うことができます。
  3. "ビジネス"ユーザーが管理セクションにアクセスするとき、彼が見た購入のリストは、以下の通りでなければなりません:彼と関連付けられたすべてのパートナーのすべての製品のすべての購入。 (まったく些細な質問ではない)。
  4. 私はそれを愚かなやり方で考えましたが、 "アプリ/バックエンド/モジュール/購入/アクション/ actions.class.php#executeIndex"をオーバーライドしました。私はまず、そのメソッドのバージョンからいくつかのコードをキャッシュにコピー・ペーストしなければなりませんでした。要するに、私は "executeIndex"に自分自身をフックし、適切なCriteriaを実行するためのコードを追加し、コードが機能します。

問題は今、このです:

リストの上にフィルタフィールド(製品のリストを含む1)が可能なすべての製品が含まれていません。現在のユーザーが関連付けられているすべてのパートナーのすべての製品のみを含むようにします。

これは、管理者のフィルタを上書きしなければならないことです。コードをどこに接続すればいいのか分かりません。

何か助けていただければ幸いです。御時間ありがとうございます。

更新日:奇妙なことに非常に人気のない質問です。誰もこれをしなければならなかったのですか?ワオ。

+0

誰もsymfony 1.xをもう使用したくないと思うでしょう; P –

+0

それは本当です。幸い、私はずっと前に移動しました。 ;) – dimitarvp

+0

悲しいことに、まだ贅沢はまだありません(まだいくつかのレガシーコード):( –

答えて

1

product_listの設定を解除し、フィルタを適用した別のウィジェットを設定する必要があります。

this postをチェックしてください。ここで私はdoctrineを使って説明します。あなたの場合、sfGuardUserFormsomthingFilterFormです。

this methodを使用してデータをフィルタリングすることもできます。もう少しエレガントですが、どちらも機能します。

+0

私はほとんど失われていません。これはバックエンドにあります。どのようにこのシナリオであなたのアドバイスを適用するのですか?ご存じのように、バックエンドの魔法のほとんどは 'generator.yml'に隠されています。私はデータをフィルタリングするためのピアメソッドを持っています。今私は彼らに電話するコードを書くために具体的な場所が必要です。この場合、私はジェネレータに 'product_id'フィルタを持っていますが、私はそれをピアメソッドでさらに制限したいと思っています。もう少し具体的にできますか?フォームはどこにあるべきですか?ウィジェットの設定を解除するには?等。? – dimitarvp

+0

管理モジュールを作成するときにモデルを使用しました。私はあなたがモデルとして購入を使用したと思うので、purchaseFormFilterを見つけなければなりません(/ lib/filter/propel /を試してみてください)。あなたはあなたが望むように微調整することができます。 – Pabloks

+1

ありがとうございます。 '$ this-> setWidget( 'product_id'、新しいsfWidgetFormPropelChoice(array( 'model' => 'Product'、 'add_empty' => true、 'criteria)のように、' PurchaseFormFilter#configure'に行くことで、 '=> $ product_criteria))); '、' product_criteria'はフィルタリングコンボボックスの値を制限するのに必要な基準です。 – dimitarvp

関連する問題