問題タブ [propel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
propel - クライテリアにMAXを含めたORMを推進
Propel ORM を使用してクエリを作成しています
クエリの形式は次のとおりです。
私はこれまでに得ました:
Propel を使用してこれを行う方法を知っている人はいますか?
php - sfPropelRouteオブジェクトへの基準の挿入
Page
独自性がに由来するオブジェクトがありますPageDomain
。スキーマは、関係を作成するためのフィールドがpage
テーブルに含まれるように構成されています。page_domain_id
ページを表示するために、executeShow
アクションとカスタムハンドラーがあります。私のルートは次のようになります:
例として、私は持っているかもしれません/audience/create
し、また/behavior/create
。どのページが要求されているかを判断できる必要があります。
カスタムハンドラー(doSelectByDomain
)の目的は、を考慮に入れ、domain_slug
ドメインも正しい場合にのみページを取得/表示することです。ただし、私が見つけたdomain_slug
のは、アクションの$request
パラメーターでパラメーターが使用可能であっても、取得するものに織り込むことができるように、カスタムハンドラーにパラメーターを取得する方法がないということです。
モデルから直接オブジェクトにアクセスできることはわかっていsfContext
ますが、それはせいぜいエレガントではなく、MVCを壊します。本当に良い方法がないのなら、私はそれを使うことを恐れませんが、あるに違いないようです。symfonyはsetListCriteria
ルートをリストするためのメソッドを提供していますが、オブジェクトルートに似たものは見つかりません。
ヘルプ?ありがとう。
orm - Propel ORM を使用した UNION クエリ
Propel ORM を使用して UNION クエリを作成しようとしています。
誰もこれを行う方法を知っていますか?
php - 単一テーブルの継承の問題を推進する
schema.xml ファイルで抽象として定義されている「talk」というテーブルがあります。
4 つのオブジェクト (クラスキーごとに 1 つ) を生成します: コメント、評価、レビュー、チェックイン
TalkPeer も生成しますが、他の 4 つのピア (CommentPeer、RatingPeer、ReviewPeer、CheckinPeer) は生成できなかったので、手動で作成し、BaseTalkPeer を継承する TalkPeer.php を継承するようにしました。次に、これらの各ピアに getOMClass() を実装しました。
問題は、4 つのピアを使用してクエリを実行すると、4 つのタイプのオブジェクトすべてが返されることです。つまり、ReviewPeer は Visits、Ratings、Comments、および Reviews を返します。
例:
これにより、値が 5 を超えるすべてのコメント、評価、レビュー、およびチェックインが返されます。
ReviewPeer は Review オブジェクトのみを返す必要があり、これを行う方法がわかりません。
クラスキーを手動で指定するには、実際にすべての基準を調べて変更する必要がありますか? Peer の名前はすでに異なるため、これは少し無意味に思えます。各ピアをカスタマイズする必要はありません。TalkPeer はすべて継承しているので、TalkPeer だけをカスタマイズできるはずです...方法がわかりません。
TalkPeer だけで doSelectStmt を変更して、自動的に CLASSKEY 制限を基準に追加しようとしました。それはほとんど動作しますが、次のように表示されます: Fatal error: Cannot instantiate abstract class Talk in /models/om/BaseTalkPeer.php on line 503. Line 503 is in BaseTalkPeer::populateObjects(), and is in the 3rd line below:
ドキュメントは、 BaseTalkPeer::populateObject()のオーバーライドについて話しました。それが私の問題だと感じていますが、ソースコードを読んだ後でも、それを機能させる方法を理解できませんでした。
これが私がTalkPeer::doSelectStmtで試したことです:
以下は、ReviewPeer の getOMClass メソッドの例です。
これが私のスキーマの関連ビットです:
PS - いいえ、1.3 から 1.4 にアップグレードできません。再テストが必要なコードが多すぎる
php - Doctrine to Propel スニペット
SF (1.4) で Propel ORM を使用しています。私はクラスを書いていて、クエリ Doctrine クエリを Propel に書き直す必要があります:
誰でも変換を手伝ってもらえますか?
file-upload - symfony setPostValidator と sfValidatorFile
コールバックでファイル アップロード バリデーターをセットアップする問題に取り組んでいます。
私はこれを達成したい:
ユーザーがアップロードするファイルの種類を選択してファイルをアップロードするフォームがあります。したがって、タイプとして「img」を選択した場合は画像を処理し、「pdf」を選択した場合は pdf を処理するようにバリデーターを設定したいと考えています。
さらに、タイプに応じて MIME タイプとパス、validatedFileClass を指定したいと考えています。
私はこれを試しました..しかし、私はそれを動作させることができません
$this->validatorSchema->setPostValidator(
new sfValidatorCallback(array('callback' => array($this, 'validateUploadedFiles')))
);
関数:
私が直面している問題は、この関数が url 値を配列として受け取り、バリデータースキーマを更新しても、url を検証せず、オブジェクト保存メソッドに配列として送信し続けることです。では、次のようなものを作る方法
この関数内の url.validateFile()
php - propel の使用中にエラーが発生しました。build-propel.xml が見つかりません
propel-gen (propel v 1.4) を使用してビルドを作成しようとすると、次のようになります。
[phing] プロジェクト ファイルの読み取りエラー [ラップ: 読み取り用に /path/to/project/build-propel.xml を開けません:]
propel のドキュメントでこのファイルへの参照が見つかりません。
php - Propel ORM を使用したブロブの保存と取得
Symfony 1.31 (mySQL db) で Propel (1.4) を使用しています。BLOB (gzip 圧縮) データをデータベースに保存/取得したい
私の db スキーマは YML で定義されています。
スキーマが次のようになっているとします。
次の質問があります
- YML の BLOB フィールド タイプの type: value は何ですか?
- 通常のゲッター セッター メソッドを使用して、MrBlobby オブジェクトから BLOB データを取得/設定できますか?
propel のドキュメントでは、ここで _toString() メソッドを呼び出す必要があると書かれていますが、これが Propel 1.4 に適用されるかどうかは明確ではありません。