問題タブ [fuelphp-orm]
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.
fuelphp - Fuelphp の左結合から結果を取得する
「アカウント」というテーブル名があります。「Id」、「Name」、「primary_user_id」という名前の 3 つの列があります。ユーザーIDに対応するID、名前、名前を表示したい。つまり、左結合を使用していません。を使用してコレクションを取得します
モデル:-
ビューで:-
primary_user_id に対応する名前の値を取得しようとしています。どうすればそれを達成できるか教えてください。
php - FuelPHP - 関係テーブルの多対多およびフィールド?
FuelPHP はこの機能をサポートしていないと思いますが、最善の方法を知りたいです....
users、modules、 の3 つの SQL テーブルがありますmodules_users。ユーザーには多くのモジュールがあり、モジュールには多くのユーザー (フォローしているユーザー) がいる場合があります。modules_usersにはactual_state、このユーザー用のモジュールがあります。
modules_users次のフィールドがあります: - id
- user_id
- module_id
- actual_state
- previous_state
-updated_at
Model_Userとの 2 つの ORM モデルが必要Model_Modulesです。次のような関連オブジェクトにアクセスしたいと思います。
どうすればそれができますか?
php - FuelPHP の ORM パッケージがアイテムを正しく並べ替えていない
「タイトル」フィールドを持つテーブルがあり、このテーブルのすべての行を取得して、タイトル ASC で並べ替えようとしています。私がテストしている 4 つのレコードのタイトルは次のとおりです。
別のテスト
私の新しいページ
新着
ああ
これは行が返される順序でもあり、これは正しくありません。「aaa」はリストの一番上にあるはずです。問題は大文字と小文字にあると思います。
タイトルだけでなく LOWER(title) で注文したいのですが、FuelPHP でこれを機能させるのに問題があります。
レコードを選択するために使用しているコードは次のとおりです。
「ケース」に関係なく、注文アイテムの上のコードを作成するにはどうすればよいですか?
編集:
@Uru、フィードバックをありがとう:) 次のコードを試してみましたが、すべてのバリエーションで SQL または PHP エラーが発生します。
fuelphp - Forge を使用してデータベースに挿入するが、挿入 ID を取得しない
私は Fuel を初めて使用します...次のコードを使用してスクリプトにレコードを挿入させました:
$address->id で挿入 ID を取得できるはずですが、空です。
何が間違っているのかわかりませんか?
pg_swl を使用していますが、それが違いを生むかどうかはわかりません。
php - ORM: FuelPHP でモデルが更新されたときに親の "updated_at" タイムスタンプを変更する
Model_Comment を持つ可能性のある Model_Post があるとします。
updated_at新しいコメントが保存されるたびに Model_Postのフィールドが更新される方法はありますか? オブザーバーのドキュメントを確認しましたが、「ORM の方法」でそれを行う方法が見つかりません。
このコードは機能していないようです:
このコードを使用して新しいコメントを作成します。
orm - FuelPHP を使用した多対多の関係での注文
多対多の関係での並べ替えに問題があります。私が達成しようとしていることはかなり単純なように思えますが、Fuel に何度も頭をぶつけた後でも、まだ機能させることができません。
(ちなみに、この質問は以前にも多かれ少なかれ聞かれたことがあると思いますが、(a) 当時は遅延読み込み関係を分類することができなかったので、(b) もっと多くのことを手に入れました私が抱えている正確な問題の詳細、別の質問として尋ねる価値があると思いました...)
私が抱えている問題は次のとおりです。
「アイテム」モデルがあります。アイテムは、'parent_id' および 'child_id' 列を持つ "items_items" テーブルを介して多対多の関係を介して結合された子 (アイテムでもあります) を持つことができます。「items_items」テーブルには「sortorder」列もあり、子アイテムの順序を設定できます。
この関係のために別のモデルを作成するのはやり過ぎのように思えたので、親が保存されたときに子アイテムのソート順を更新するオブザーバーによって順序が更新されます (Model_Item の「_event_after_save」メソッドを介して)。これはうまくいくようです。
ただし、私が抱えている問題は、並べ替え順序を遅延読み込みまたは積極的読み込みのいずれかで動作させることができますが、両方では動作しないことです。どちらが機能しても、もう一方は Fuel エラーをスローするため、現時点で熱心な読み込みと遅延読み込みの両方を機能させる唯一の方法は、熱心な読み込み時に「order_by」句を削除することです。「子」関係を定義するために私が試した 3 つの方法を次に示します。
アプローチ #1
- これは、 FuelPHP のドキュメントの関連ページが推奨するアプローチです。
熱心な読み込みでも遅延読み込みでもエラーはありませんが、いずれにしても order_by は尊重されません (子アイテムはソート順ではなく ID で並べ替えられます)
/li>
アプローチ #2
- イーガーローディングで思い通りに動作
遅延読み込みで Fuel エラーが発生します ( 「Column not found: 1054 Unknown column 'items_items.sortorder' in 'order clause'」 ) これは、JOIN 句で items_items が 't0_through' にエイリアスされているためと思われますが、ORDER BY ではエイリアスされていません。句。
/li>
アプローチ #3
- 遅延読み込みで思い通りに動作
熱心なロードで燃料エラーを引き起こします(事実上、上記のテイク#2の逆)
/li>
少し絶望的なハックで、2つの別々の関係(「子」と「子」)を定義することにより、上記のアプローチ2と3を組み合わせてみました-1つは熱心な読み込み用、もう1つは遅延読み込み用ですが、それでもアプリが壊れます。削除プロセスは同様のエラーをスローします。これを修正しようとすることはできますが、それはハックにハックを重ねるだけのように感じます。代わりに私が望むのは、子アイテムが熱心にロードされたか遅延ロードされたかに関係なく機能する、子アイテムを注文する確実な方法です。Fuel のドキュメントは、これが実行可能であることを示唆しています (上記のアプローチ #1) が、私はそれを機能させることができません...
どんな助けでも大歓迎です!
fuelphp - Fuel PHP - to_array() メソッドと複数の belongs_to 関係と熱心な読み込み
一部のレガシー データ モデル/スキーマを燃料 API に移行しようとしていますが、 2 つのプロパティto_array()を持つモデルのメソッドで奇妙な問題が発生しました。$_belongs_to
メソッドを使用せずにモデルをロードすると、to_array()両方の関連アイテムを熱心なロードで適切に受け取りますが、これらをこの関数に渡してデータを変換し、新しい API で消化できるようにするとすぐに、2 番目の$_belongs_toプロパティが取り除かれます。配列内の小道具を並べ替えると、$belongs_to配列内の最初のアイテムが表示されます。
私の質問は、2 番目の関係を失わずにこのデータを配列に変換するにはどうすればよいですか?
参照しやすいようにクリーンアップされた例を次に示します。
取引モデル:
トランザクション コントローラ:
orm - FUELPHP ORM: データベース ビュー 'viewname' は列なしで定義されています
FuelPHP で ORM を使用して、データベースに作成したテーブル ビューのデータを取得しています。
ここに記載されている指示に従いましたが、上記のタイトルに示されているエラーが表示されます。参照用のエラーのスクリーンショットを次に示します ( http://prntscr.com/72ssqc )。
コードは次のとおりです。 http://pastebin.com/ips5VCzV
ビュー テーブルのスクリーンショットを次に示します: http://prntscr.com/72st1e