【发布时间】:2016-06-25 06:59:30
【问题描述】:
我想使用has_many 关系在模板上循环我的产品,但有些事情做错了。首先,我使用has_one 创建DataObject Product 并创建ModelAdmin 以添加新产品。之后,我创建 ProductPage 模型和控制器以及 ProductPage 模板,我在其中循环产品。
数据对象:
<?php
class Product extends DataObject
{
private static $db = array(
'Name' => 'Varchar',
'Description' => 'HTMLText',
'Price' => 'Decimal'
);
private static $has_one = array(
'Photo' => 'Image',
'ProductPage' => 'ProductPage'
);
public function getCMSFields()
{
$fields = FieldList::create(TabSet::create('Root'));
$fields->addFieldsToTab('Root.Main', array(
TextField::create('Name'),
HtmlEditorField::create('Opis'),
NumericField::create('Price'),
UploadField::create('Photo')
));
return $fields;
}
}
产品页面:
class ProductPage extends Page
{
private static $has_many = array(
'Products' => 'Product'
);
}
class ProductPage_Controller extends Page_Controller
{
}
模板:
<% if $Products %>
<% loop $Products %>
<div class="col-md-4">
<h3>$Name</h3>
</div>
<% end_loop %>
<% else %>
No product found
<% end_if %>
我得到所有时间No product found 但我在数据库中有产品。
可能有什么问题?
【问题讨论】:
标签: php silverstripe