DashboardPage
üzerinde PastEvent
veri ağım için $has_many
ilişkim var. DashboardPage.ss şablonumda, tüm PastEvents
aracılığıyla döngü yapabilmek istiyorum. Ben çünkü DashboardPage.ss
şablona aşağıdakileri yapın gerekir $ has_many ilişkinin inanıyoruz:
<% loop $PastEvents %>
<div>
<div>$EventName</div>
<div>$ClassType</div>
etc...
</div>
<% end_loop %>
Ancak hiçbir şey gösteriyor
DashboardPage.ss. Neyi kaçırıyorum?
DashboardPage.php
<?php
class DashboardPage extends Page implements TemplateGlobalProvider {
private static $db = array(
'Testing' => 'Varchar(255)'
);
private static $has_many = array(
'PastEvents' => 'PastEvent'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->removeByName('Content');
return $fields;
}
public static function get_template_global_variables() {
return array('DashboardLink' => 'getDashboardLink');
}
public static function getDashboardLink($action='') {
$page = DashboardPage::get()->first();
return $page ? $page->Link($action) : '';
}
}
class DashboardPage_Controller extends Page_Controller {
private static $allowed_actions = array(
'show'
);
public function init() {
parent::init();
Requirements::css('themes/' . SSViewer::current_theme() . '/owl-carousel/owl.carousel.css');
Requirements::css('themes/' . SSViewer::current_theme() . '/owl-carousel/owl.theme.css');
Requirements::css('themes/' . SSViewer::current_theme() . '/owl-carousel/owl.transitions.css');
}
public function show(){
dd('Coming here');
}
}
PastEvent.php Sen ano dan geçmiş olayları ekleyebilir
public function getCMSFields() {
...
$fields->push(GridField::create('PastEvents', 'Past Events',
$this->PastEvents(),
singleton('PastEvent')->canEdit()
? GridFieldConfig_RecordEditor::create()
: GridFieldConfig_RecordViewer::create()
));
...
}
Pano sayfasında PastEvent yönetmesi gereken
<?php
class PastEvent extends DataObject {
private static $db = array(
'EventName' => 'Varchar(255)',
'ClassType' => 'Varchar(255)',
'Instructor' => 'Varchar(255)',
'EmbedCode' => 'Text',
'EventDate' => 'Date',
'Time' => 'Time'
);
private static $has_one = array(
'BranchLocation' => 'BranchLocation',
'DashboardPage' => 'DashboardPage'
);
private static $summary_fields = array(
'EventName' => 'EventName',
'BranchLocation.Name' => 'Branch Location',
'ClassType' => 'ClassType',
'Instructor' => 'Instructor',
'EventDate' => 'Event Date',
'Time' => 'Time',
);
public function getCMSFields() {
$fields = new FieldList(
TextField::create('EventName'),
TextField::create('ClassType'),
TextField::create('Instructor'),
DropdownField::create(
'BranchLocationID',
'Branch Location',
BranchLocation::get()->map('ID', 'Name')->toArray()
),
TextareaField::create('EmbedCode'),
DateField::create('EventDate')->setConfig('showcalendar', true)->setDescription('Click inside textbox to open calender'),
TimePickerField::create('Time')
);
return $fields;
}
public function Link() {
return $this->DashboardPage()->Link('show/'.$this->ID);
}
}
ifusion, DashboardPage ile PastEvent arasındaki ilişkiyi nasıl ayarlıyorsunuz? – muskie9
@ muskie9 - DashboardPage öğesindeki PastEvent nesnesinde $ has_one var ve DashboardPage '$ PastEvents => $ PastEvent ' – ifusion
@ifusion'da $ has_many var. Burada neye karar vermek için' PastEvent '' DashboardPage 'ekliyorsunuz? PastEvent's, "DashboardPage" ile ilişkilidir? –