在控制器 SilverStripe 中使用 ORM
Using The ORM in controller SilverStripe
我有以下布局:
mypage.ss
$CreateString
<% loop $LatestString %>
<div>$StringVar</div>
<% end_loop>
mypage.php
class MyPage extends Page {
private static $db = array(
'StringVar' => 'Varchar'
);
}
class MyPage_Controller extends Page_Controller {
public function CreateString() {
$varS = MyPage::create(array('StringVar' => 'Jonh Davies'));
$varS = MyPage::write();
return $varS;
}
public function LatestString() {
return MyPage::get()
->sort('Created', 'DESC')
->limit(1);
}
}
事情是什么都没有创建,现在控制器有输出。没有创建记录,也没有输出。
在上面的示例中,MyPage 未发布。您的 CreateString 方法应该更像:
$varS = MyPage::create(...);
$varS->write();
$varS->publish('Stage', 'Live');
return $varS;
我什至不确定 "MyPage::write" 会做什么,但它可能甚至不会在暂存 table 开始时保存记录。我有点惊讶没有产生错误。
我有以下布局:
mypage.ss
$CreateString
<% loop $LatestString %>
<div>$StringVar</div>
<% end_loop>
mypage.php
class MyPage extends Page {
private static $db = array(
'StringVar' => 'Varchar'
);
}
class MyPage_Controller extends Page_Controller {
public function CreateString() {
$varS = MyPage::create(array('StringVar' => 'Jonh Davies'));
$varS = MyPage::write();
return $varS;
}
public function LatestString() {
return MyPage::get()
->sort('Created', 'DESC')
->limit(1);
}
}
事情是什么都没有创建,现在控制器有输出。没有创建记录,也没有输出。
在上面的示例中,MyPage 未发布。您的 CreateString 方法应该更像:
$varS = MyPage::create(...);
$varS->write();
$varS->publish('Stage', 'Live');
return $varS;
我什至不确定 "MyPage::write" 会做什么,但它可能甚至不会在暂存 table 开始时保存记录。我有点惊讶没有产生错误。