Silverstripe 将页面写入 Live、舞台还是草稿?怎么运行的
Silverstripe write Page to Live, stage or Draft? How it works
我在通过选择版本来更新页面时遇到了一些困难...要创建,我这样做:
$PageCalendrierEvenement = new PageCalendrierEvenement();
$PageCalendrierEvenement->Title = $this->request->postVar('Titre');
$PageCalendrierEvenement->MenuTitle = $this->request->postVar('Titre');
$PageCalendrierEvenement->URLSegment = Utils::remplacerEspaces(Utils::remplacerAccents($PageCalendrierEvenement->Titre));
$PageCalendrierEvenement->publish('Stage');
$PageCalendrierEvenement->doRestoreToStage();
这项工作非常好。但是我们如何通过 ID 更新它的值呢?是否可以不使用 DB:Query?
$evens = Versioned::get_by_stage('PageCalendrierEvenement', 'Stage')->byID($evenID);
$evens->Title = $this->request->postVar(Titre);
$evens->Publish('Stage');
对于 SiteTree 的子类,您可以这样做:
$evens = Versioned::get_by_stage('PageCalendrierEvenement', 'Stage')->byID($evenID);
$evens->Title = $this->request->postVar(Titre);
//do whatever you want...
$evens->doPublish(); //writes to Stage and Live and does other stuff for SiteTree
对于简单的数据对象,您需要调用:
//changed a bit...
$evens->write();
$evens->publish("Stage", "Live");
我在通过选择版本来更新页面时遇到了一些困难...要创建,我这样做:
$PageCalendrierEvenement = new PageCalendrierEvenement();
$PageCalendrierEvenement->Title = $this->request->postVar('Titre');
$PageCalendrierEvenement->MenuTitle = $this->request->postVar('Titre');
$PageCalendrierEvenement->URLSegment = Utils::remplacerEspaces(Utils::remplacerAccents($PageCalendrierEvenement->Titre));
$PageCalendrierEvenement->publish('Stage');
$PageCalendrierEvenement->doRestoreToStage();
这项工作非常好。但是我们如何通过 ID 更新它的值呢?是否可以不使用 DB:Query?
$evens = Versioned::get_by_stage('PageCalendrierEvenement', 'Stage')->byID($evenID);
$evens->Title = $this->request->postVar(Titre);
$evens->Publish('Stage');
对于 SiteTree 的子类,您可以这样做:
$evens = Versioned::get_by_stage('PageCalendrierEvenement', 'Stage')->byID($evenID);
$evens->Title = $this->request->postVar(Titre);
//do whatever you want...
$evens->doPublish(); //writes to Stage and Live and does other stuff for SiteTree
对于简单的数据对象,您需要调用:
//changed a bit...
$evens->write();
$evens->publish("Stage", "Live");