Имам следното във функцията init() на моя Page_Controller:
if ($this->ClassName != 'Trail' && $this->ClassName != 'Ride'){
Session::clear('RelatedTrails');
} elseif ($this->ClassName == 'Ride') {
Session::clear('RelatedTrails');
Session::set('RelatedTrails', $this->getTrails());
}
Клас на каране:
function getTrails() {
return $this->Trails();
}
static $many_many = array(
'Trails' => 'Trail'
);
Клас пътека
class Trail extends Page {
.....
static $belongs_many_many = array(
'Rides' => 'Ride',
);
....
}
Това задава сесия, когато потребителят посети страница за пътуване. Трябва да направя информацията за тази сесия налична на страницата на пътеката САМО когато преминават директно от страница с каране към страница с пътека.
Създава ми проблеми с това, че когато натисна страница на клас „Ride“, сесията не е зададена. Когато коментирам Session::clear от първата част на оператора if, сесията е зададена правилно, но имам нужда от нея, за да изчистя всеки друг тип страница.
Опитах се да сложа ехо и зарче в първата част, за да видя дали пада тук, но никога не се уцелва. Това е много странно поведение. Може ли някой да види какво става тук?
АКТУАЛИЗАЦИЯ: За да обясня допълнително: имам вози и пътеки. Едно пътуване може да съдържа много пътеки. На страницата за каране има меню, което позволява на потребителя да кликне до пътеките, които са свързани с карането. Когато кликнат от пътуването до пътеката, има меню, което показва другите пътеки, свързани с пътуването, от което току-що са щракнали. Пътеките за менюто се съхраняват в сесията, която е зададена на страницата Ride. Трябва да запазя тази сесия, докато те навигират в другите пътеки чрез менюто, за да мога да продължа да показвам тези свързани пътеки.
Ако потребителят се свързва директно към страницата на пътеката (не чрез пътуване). Трябва да знам това, за да мога просто да покажа ВСИЧКИ пътеки, тъй като нямам свързани пътеки.