問題タブ [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.
php - すべてのフォーム検証エラーをsymfonyの一番上に表示させますか?
私はここで比較的一般的であるはずの何かを見逃しているかもしれないと思います。フィールドにバインドされたエラーを含むすべてのフォーム検証エラーをフォームの上部(グローバル)に表示するにはどうすればよいですか?
php - SQL 固有のものでカスタム Setter を推進する
Symfony 1.0 プロジェクトで、PostgreSQL db を使用して Propel 1.2 を使用しています。次のように、Postgres 関数を使用するために、SELECT ステートメントで Criteria::CUSTOM を使用できます (全文検索)。
`$c = 新しい基準();
$c->add(MyTablePeer::FULLTEXT_COLUMN, MyTablePeer::FULLTEXT_COLUMN." @@ to_tsquery('english', 'text to search')", Criteria::CUSTOM);`
レコードの選択については問題ありませんが、INSERT についてはどうでしょうか。現在、生の SQL クエリを使用していますが、より洗練された方法で実行したいと考えています。Symfony の Web サイトでこのスニペットを見ましたが、コードが多く、私のニーズには合いません。パフォーマンスは非常に重要であるため、生の SQL を記述するよりも優れたソリューションはおそらくありません。
$object->setFulltextColumn($parameters) のようなカスタム セッターを作成するにはどうすればよいですか?
前もって感謝します
php - Propel で派生テーブルから選択するにはどうすればよいですか?
Criteria
アプリケーションに Propel PHP フレームワークの v1.3 を使用していますが、オブジェクトを使用して派生テーブルから選択する方法が見つかりません。私が欲しいSQLの一部は次のとおりです。
実際の SQL はこれよりも複雑ですが、それにはさらに結合が含まれているだけです。
を使用しようとしましたがCriteria::addAlias()
、残念ながら、テーブル定義を SQL エスケープしようとします。最終的に、その方法で SQL を記述しようとするのをあきらめ、ビュー (unisoned_table
この例で呼び出されます) を作成しました。
次に、このテーブルに結合を追加しようとしました。
悲しいことに、これによりビューが 2 回結合されます。1回は との内部結合として、qux
もう 1 回は との交差結合として結合されbaz
ます。baz
奇妙なことに、 SELECT 列を削除すると、クロス結合が消えます。
どうすればこれを行うことができるかについて誰か提案がありますか? Criteria
カスタム SQL は変更 (列の置き換え、追加条件の追加など) する必要があるか、doCount()
呼び出しで使用する必要があるため、そのままのカスタム SQL を使用することはできません。
symfony1 - propel:build-allを使用すると、Symfonyが「TableMapをフェッチできません」というエラーが発生します
スキーマ全体を消去し、キャッシュをクリアして、libフォルダー内の「ベンダー」以外のすべてを削除しても、エラーが発生します。また、propel:build-filtersまたはpropel:build-formsを実行するとエラーが発生します。
よろしくお願いします!
symfony1 - _modelはsymfony/propelで何を表していますか?
schema.ymlを時々変更して、以下を実行します。
しかし、lib/_modelとlb/modelは私の変更を反映しておらず、原因は次のとおりです。未定義のメソッドを呼び出す
php - データベース コマンドは、phpMyAdmin ではすぐに、私の PHP スクリプトでは緩やかに実行されます
非常に大きな MySQL データベース (約 100 万項目) があり、そのデータベースに対してかなり複雑なクエリを実行しています。SQL コマンドを phpMyAdmin に入力すると約 2 秒かかりますが、PHP コードを使用して同じ出力を生成するには約 1 ~ 2 分かかります。
なぜこのような時差が生じるのでしょうか。クエリの実行が不十分だった場合、結果が phpMyAdmin に表示されるまでに時間がかかりませんか?
php - include_path のない仮想ホストで propel ORM オブジェクトを生成する方法は?
いくつかの仮想ホストを持つ開発サーバーがあります。それぞれが次のコマンドを実行できる必要があります: propel-gen ./ creole そのスクリプトは、データベースをリバース エンジニアリングする php を実行します... しかし、それが実行する php はそうするために含める必要があります。
php.ini には include_path が設定されていません。これは、すべての仮想ホストに対してグローバルであるためです。vhost ごとに include_path を一意にする必要があります。
コマンドラインでこれを機能させるにはどうすればよいですか? (注: コマンドラインは Apache を経由しないため、htaccess は機能しません)。
この問題を回避する別の方法はありますか? おそらく、インクルード パスを設定するためにコマンドライン パラメータを渡しますか? おそらく.bashrcに何かを設定していますか?:(
PS - スクリプトは、ハードコーディングされたインクルード パスを持つ私の Mac で正常に動作します。
php - Propel はコマンドラインツールに使用するデータベースをどのように決定しますか?
Propel はどのデータベースをコマンドライン ツール(例: "propel:build-all") に使用するかをどのように決定しますか? 2 つの環境 (本番環境とステージング環境) をセットアップしていますが、データベースはそれぞれ異なります。
「propel.ini」または「databases.yml」ですか?前者の場合、symfony はそのファイルを自動生成しますか?
助けていただければ幸いです。ありがとうございました!
propel - Propel:doUpdateから返される「影響を受ける行」の定義方法
propelには、このクエリによって影響を受ける行の数を返すこのdoUpdate関数があります。
問題は、行を更新する必要がない場合(set
値がすでにフィールド値と同じであるため)、それらの行は影響を受ける行としてカウントされるかどうかです。
たとえば、次の表があります。
次のクエリと同等のORM関数を作成するとします。
結果はどうなりdoUpdate
ますか?0を返しますか(すべてのBooks
列がすでにMe
あるため、更新する必要はありません)、それとも2になりますか(条件を満たす2つの行があるためwhere
)?