0

Yii Frameworkで小さな POS アプリケーションを実行しています。私のデータベースはこのようになっています。これで、モデルとクラッドの部分ができました。しかし、ここで私はそれらの間の建物の関係に少し混乱しています。では、モデル内でそれらの間の関係がどうなるか、誰か親切に教えてもらえますか? どんな助けや提案も本当に価値があります。ありがとう..

====================
      mspl_sales
====================
id
product_id
store_id
discount_id
agent_id
date
price
discount_percentage


===================
mspl_requistitation
===================
id
store_id
product_id
agent_id
date
requisition_number
procure_quantity
balance_store_stock
priority



==================
   mspl_product
==================
id
product_name
cost_price
selling_price



==================
  mspl_store
=================
id
store_name
store_location



==================
    mspl_discount
==================
id
discount_type


=================
mspl_agent
===============
id
user_name
email_id
agent_code
authorization_password
4

2 に答える 2

0

Yii にはさまざまなタイプのリレーションがあります。最も一般的なものは次のとおりです。

  • 一対多
  • 1対1
  • 多対多

私が見る限り、あなたは1対多、おそらく1対1の関係しか持っていません。Yii のモデルはオブジェクトであり、データベースにレコードとして保存されます。

データベースには、sales テーブルがあります。このテーブルには店舗 ID があるため、1 つの販売には 1 つの店舗があり、1 つの店舗には複数の販売があるため、これは 1 対多の関係です。

Yii フレームワークでは、これは次のように表されます。販売モデルには属性 store_id がありますが、店舗モデルとも関連しているため、この店舗モデルがあります。次のように販売モデルから店舗モデルにアクセスできます。

$sale->store

そこから、名前や場所など、ストアが持つすべての属性にアクセスできます。

$sale->store->location

また

$store = $sale->store;
$store->location

一方、店舗にはさまざまな販売モデルがあります。したがって、ストア モデルに 1 つのセールがある場合、次のようにアクセスできます。

$store->sales[0]

ストアの売上が多い場合は、それらを反復処理できます。

foreach($store->sales as $sale){
    $sale->id = 0;
    $sale->save();
    //your logic here
}

これが役立つことを願っています。

于 2013-07-10T23:00:54.913 に答える
0

ステップ 1: store テーブルに、別のフィールドを追加できます (製品 ID が外部キーとして必要になる場合があります)。

ステップ2:次に、ストアテーブルで外部キークリックインデックスを選択し、最後にリレーションビュー(提供された構造の下)をクリックして、外部キーテーブル名とIDを選択し、「カスケード」と入力します。

ステップ 3: 次に、モデルを再生成すると、リレーションが取得されます。

于 2016-12-15T07:59:49.423 に答える