您可以让 SilverStripe 通过扩展其DataObject
和Page
类来为您创建数据库表。
以下代码适用于 SilverStripe 3.1。
以下是如何创建User
,Product
和Order
类来创建您想要的数据库表,以及所描述的关系。我还添加了一个OrderItem
类,因为我认为这很有意义。
class User extends DataObject {
private static $db = array(
'FirstName' => 'Text',
'LastName' => 'Text',
'Email' => 'Text'
);
}
class Product extends DataObject {
private static $db = array(
'Title' => 'Text',
'Price' => 'Decimal(19,8)'
);
}
class Order extends DataObject {
private static $has_one = array(
'User' => 'User'
);
private static $has_many = array(
'OrderItems' => 'OrderItem'
);
}
class OrderItem extends DataObject {
private static $has_one = array(
'Order' => 'Order',
'Product' => 'Product',
'Quantity' => 'Int'
);
}
一旦你创建了这些类,运行dev/build?flush=1
然后查看已经在你的数据库中创建的表。
因为Product
您可以扩展Page
而不是DataObject
希望将产品作为页面显示给用户。这取决于你。
使用 SilverStripe 管理您的类、关系和数据库。这就是它的用途。
如果您想要 SilverStripe 中出色的商店模块,我建议您查看SwipeStripe。或者,如果您确实想自己构建它,您可以在 git 上查看 SwipeStripe 的源代码,看看他们是如何做事的。