検索

ホームページ  >  に質問  >  本文

TP5 リモート 1 対多関連付けパラメータの入力方法

まず、order_goods の GoodsiD に基づいて商品テーブルで shop_id を見つけ、次に shop_id に基づいて shop テーブルで名前を見つけるというアイデアについて話しましょう。order_goods テーブルは、 shop table
TP5の書き方を真似します
public function shop( )
{
return $this->hasManyThrough('Shop','Goods','goods_id','shop_id', 'id')->setEagerlyType(0);
}
hasManyThrough('関連モデル名', '中間モデル名', '外部キー名', '中間モデル関連キー名', '現在のモデル主キー名', ['モデルのエイリアス定義']);
は次のとおりです。パラメーターの書き方がわかりません。専門家の方からアドバイスをいただけますか?

葫芦娃平衡盘葫芦娃平衡盘2397日前1876

全員に返信(5)返信します

  • 天蓬老师

    天蓬老师2018-05-08 15:44:48

    トレースを開いて、生成された SQL ステートメントを投稿してください

    返事
    0
  • 葫芦娃平衡盘

    ごめんなさい、先生、トレースの開き方がわかりません...

    葫芦娃平衡盘 · 2018-05-08 16:27:47
    天蓬老师

    公式マニュアルをよく読んでください。 https://www.kancloud.cn/manual/thinkphp5_1/354096

    天蓬老师 · 2018-05-08 16:56:40
    葫芦娃平衡盘

    老师找到了 [ SQL ] `ant_auth_group_access` の列を表示 [実行時間:0.002001s ] [ SQL ] SELECT `aga`.`uid`,`aga`.`group_id`,`ag`.`id`,`ag`.`pid`,`ag`.`name`,`ag`.`rules ` FROM `ant_auth_group_access` `aga` LEFT JOIN `ant_auth_group` `ag` ON `aga`.`group_id`=`ag`.`id` WHERE ( aga.uid='1' および ag.status='normal' ) [実行時間:0.002000秒] [ SQL ] `ant_auth_rule` の列を表示 [実行時間:0.003000秒] [ SQL ] SELECT `id`,`pid`,`condition`,`icon`,`name`,`title`,`ismenu` FROM `ant_auth_rule` WHERE `status` = 'normal' [RunTime:0.003000s] [ SQL ] `ant_order_goods` の列を表示 [実行時間:0.003000s ] [ SQL ] SELECT * FROM `ant_order_goods` WHERE `id` = 13 LIMIT 1 [実行時間:0.001000秒] [ SQL ] `ant_goods` の列を表示 [実行時間:0.003000s ] [ SQL ] `ant_shop` の列を表示 [実行時間:0.003000秒] 他の方の意思はant_goodsとant_shop吗にはありません

    葫芦娃平衡盘 · 2018-05-08 17:23:10
    葫芦娃平衡盘

    メインテーブル(最初のテーブル)のフィールドに基づいて中央のテーブルのフィールド(2番目)に対応し、それに対応する特定のデータを取得するため、なぜ3つのパラメータしか必要としないのかよくわかりません。別のフィールド (3 番目) は最後のテーブル (4 番目) のデータ ID に対応しているため、4 つのフィールドがあるはずだと思います。これにより、3 つのパラメーターのどれであるかがわかりません。埋めるために。

    葫芦娃平衡盘 · 2018-05-08 17:30:05
  • キャンセル返事