誰かが現在のWebフレームワークで使用されているORMを説明できますか?
-
26-10-2019 - |
質問
私はORMに非常に慣れていないので、定義を理解しています。私が関係を実装しようとすると、混乱が始まります。
これら2つのテーブルがあるとします。
製品テーブル:
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| brand_id | int(11) | YES | | NULL | |
| name | varchar(100) | YES | | NULL | |
| description | text | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
ブランド名の表:
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(100) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
でモデルをセットアップするにはどうすればよいですか $_has_many
$_belongs_to
そうするとき $product1 = Model_Product::find('first');
また、SQL参加のように、ブランドの名前を返します。
または、私はこれについて間違った方法で進んでいます。
これはfuelphpに固有のものである必要はありません。この場合、ORMSをセットアップする方法が必要です。
解決
fuelphpでは、モデルファイルの関係を定義するORM Simpliを使用できます。
Model/brand.php
class Model_Brand extends Orm\Model {
protected static $_has_many = array(
'products' => array(
'model_to' => 'Model_Product',
'key_from' => 'id',
'key_to' => 'brand_id',
'cascade_save' => false,
'cascade_delete' => true,
)
);
}
Model/Product.php
class Model_Product extends Orm\Model {
protected static $_belongs_to = array('brand');
}
実行するとき $brand = Model_Brand::find('first');
製品のリストにアクセスできます $brand['products']
実行するとき $product = Model_Product::find('first');
ブランドにアクセスできます $product['brand']
他のヒント
ややレールのような方法での例は次のとおりです。
class Brand
has_many :products
end
class Product
belongs_to :brand
end
product = Product.first
product.brand
=> <#Brand...>
brand = Brand.first
brand.products
=> [<#Product...>, <#Product...>]
これは決して完全なコードではありませんが、うまくいけばアイデアを得ることができます。
所属していません StackOverflow