問題タブ [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.
search - ORM での検索戦略
さまざまな ORM での検索の処理に関する情報を探しています。
現在、私は PHP でいくつかの古いアプリケーションを再開発しています。要件の 1 つは、すべてまたはほとんどすべてを検索可能にすることです。これにより、ユーザーは「パンクロック ライブ」と入力するだけで、アプリはビデオ クリップ、音楽トラック、レビュー、今後のイベント、さらにはそのラベルが付いたユーザー コメントを検索します。仕方。
すべてが検索可能な環境では、ORM はこの機能を 2 つの方法でサポートする必要があります。
- ORM の "O" 側にいくつかのインデックス API を提供する
- 「R」側でデータベースを一括検索する手段を提供する
理想的な解決策は、検索された文字列に基づいて既製のオブジェクトを返すことです。必ずしも PHP ではなく、仕事をする優れたエンドツーエンドのソリューションを知っていますか? 同様の問題に対処した場合は、あなたの経験が何であるかを聞いてください。Luceneまたはセマンティック Webを使用する以上の何かが、ワンライナーの方法です ;-)*
php - Symfony アプリ - 計算フィールドを Propel オブジェクトに追加する方法は?
Propel オブジェクトの計算フィールドを操作する最良の方法は何ですか?
対応するテーブル「customers」を持つオブジェクト「Customer」があり、各列がオブジェクトの属性に対応しているとします。私がやりたいことは、計算された属性「完了した注文の数」をビュー A で使用するときにオブジェクトに追加し、ビュー B と C では使用しないことです。
計算された属性は、ID を介して「Customer」オブジェクトにリンクされた「Order」オブジェクトの COUNT() です。
今できることは、最初にすべての Customer オブジェクトを選択し、次にそれらすべての Orders を繰り返しカウントすることですが、1 つのクエリでそれを行うとパフォーマンスが向上すると思います。しかし、計算フィールドの定義が含まれていないため、Propel オブジェクトを適切に「水和」できません。
どのようにアプローチしますか?
php - 推進オブジェクトにi18nレコードがあるかどうかをどのように確認しますか?
私はsymfonyとpropelを使用しており、オブジェクトで特定のカルチャを呼び出し、そのオブジェクトのいくつかのフィールドをその特定のカルチャの画面に出力しようとしています。ただし、オブジェクトのマップされたデータベースレコードにその特定のカルチャにこれらのフィールドがない場合は、デフォルトでベースカルチャ(この場合はen_US)に設定します。
私はこのようにやっています:
でもこういう出力をすると
カルチャレコードがない場合は、空の文字列を出力します。私の質問は、指定したカルチャが使用できない場合にオブジェクトを特定のカルチャにデフォルト設定する方法はありますか、または特定のオブジェクトにカルチャi18nレコードがあるかどうかを確認する方法はありますか?
このようなもの:
また
php - Propel で MySQL 関数を使用する方法
1 か月以上経過したレコードを選択したい。
クエリは次のとおりです。 SELECT * FROM foobar WHERE created_at > DATE_SUB(curdate(), INTERVAL 1 MONTH)
Symfony で Propel を使用して、次のことを行います。
$c = 新しい基準
$c->add(FoobarPeer::CREATED_AT, "DATE_SUB(curdate(), INTERVAL 1 MONTH)", Criteria::GREATER_THAN);
Propel が生成するものは次のとおりです: SELECT * FROM foobar WHERE created_at > 'DATE_SUB(curdate(), INTERVAL 1 MONTH)' - 言い換えると、MySQL 関数を単一引用符で囲み、(無意味な) 文字列にし、何も得られません記録。
私が今やったことは次のとおりです。
$c->add(FoobarPeer::CREATED_AT, "created_at > DATE_SUB(curdate(), INTERVAL 1 MONTH)", Criteria::CUSTOM);
ただし、必要がない限り、カスタムの回避策は使用したくありません。Criteria::CUSTOM を使用する以外のヒントはありますか?
php - propel-gen の「convert-conf」ターゲットが失敗する
最新バージョンの PHP と Propel 1.3 と Phing を使用して、OSX 10.5 の schema.xml ファイルからモデルを生成しようとしています。すべてのモデル クラスが実際に作成され、最後のステップで終了します。私はすでに試しました
chmod -R 777 ./application/config
しかし、それは役に立ちませんでした。私も両方試してみました
推進力/リバース
と
propel-gen ./クレオール
どちらも同じエラーを生成しました。このエラー:
これが私のbuild.propertiesファイルです:
何か案は?
php - Propel 1.2 を使用した外部結合?
Symfony で外部結合を実行しようとしています。以下は、Criteria が OUTER_JOIN をサポートしている場合に機能するように見えるコードの一部です。
何か不足していますか?Propel 1.3 はそれをサポートしていますか? どこでも検索しましたが、疑似コードしか見つかりませんでした。
propel - コードをリファクタリングする前に何を考慮しますか?
出荷されたばかりのアプリケーションがあります。それを書いたので、amfphpとpropelについて学びました。どちらもアプリケーションで使用するには「いい」ですが、現時点で必要になるとは言えません。
コードをリファクタリングする前に、どのような種類のことを検討しますか?
mysql - Symfony Propel 基準
MySQL オブジェクトを基準オブジェクトに変換する方法はありますか? 私はこのクエリを試しました:
このクエリを に変換するために多くのことを試みましたがCriteria
、何も起こりませんでした。ページネーションを完了するためにこれを Pager クラスに渡すために、この基準オブジェクトが必要です。
$pager->setCriteria($c);
.
mysql - mySQLでクエリを削除する
ドキュメントの下部を読む、具体的には:
「削除されたオブジェクトのプロパティは引き続き取得できますが、削除されたオブジェクトを保存することはできません。」
どのように?設定を有効にした場合のみですか?
database - Propel でのデータベースシャーディングのサポート
Propel のデータベース シャーディングのサポートがどれだけ優れているか気になりませんか? MySQL をデータベース サーバーとして使用し、Propel を ORM として使用して、PHP でアプリケーションを作成することを考えています。
私のアプリケーションがうまくいった場合に備えて、アーキテクチャを最初からスケーラブルに保つことが良いかもしれないと私は考えています。
あなたの見解は?