【发布时间】:2016-04-19 22:28:39
【问题描述】:
我试过了,但无法在我的数据库服务器中输出现有数据。
Page.ss(布局目录)
<div class="content-container unit size3of4 lastUnit">
<article>
<div>
<% loop $LatestMyData %>
$Data1
<% end_loop %>
</div>
<div class="content">$Content</div>
</article>
$Form
$CommentsForm
</div>
MyData.php(我的站点/代码目录)
class MyData extends DataObject {
private static $db = array(
'Data1' => 'Varchar(30)'
);
}
class MyData_Controller extends Controller {
public function LatestMyData($count = 1) {
return MyData::get()
->limit($count);
}
}
我尝试使用/dev/build 构建数据库并使用?flush=all 刷新缓存,但仍然没有输出。有谁知道怎么回事?
【问题讨论】:
-
您创建了页面吗?您如何尝试显示数据对象?查看我们的示例,您希望 MyData 成为一个页面,那么您应该从 Page 扩展 MyData 并从 Page_Controller 扩展 MyData_Controller
-
@Greg 我想做的是扩展一个 DataObject 并将其显示在页面上,这有意义吗?
-
要在页面上显示 DataObject,您应该使用页面中的关系,例如 has_one 或 has_many。这取决于您希望成为“Data1”属性的内容。它可能是页面本身的属性。
LatestMyData方法将在您的 Page_Controller 中与您的 Page.ss 一起使用(DataObjects 通常没有控制器,并为页面提供数据)
标签: php silverstripe