我在Page_Controller的init()函數如下:銀條紋:會議期問題。奇怪的行爲
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',
);
....
}
此設置當會話用戶點擊一個騎車頁面。我只需要在Trail頁面上直接從騎乘頁面到路徑頁面上提供此會話信息。
這是給我的問題,當我點擊'騎'類頁面,會議沒有設置。當我從if語句的第一部分註釋掉Session :: clear時,會話設置正確,但是我需要它清除任何其他頁面類型。
我已經嘗試在第一部分中放入一個回聲和一個死亡來查看它是否落入此處但它從未被擊中。這是非常奇怪的行爲。任何人都可以看到這裏發生了什麼?
更新: 進一步解釋: 我有遊樂設施和路徑。騎可以包含許多小徑。在乘車頁面上,有一個菜單允許用戶點擊與乘坐相關的路線。當他們通過滑道進入滑道時,會出現一個菜單,顯示與剛纔點擊的滑道相關的其他滑道。菜單的路徑存儲在騎乘頁面上設置的會話中。我需要保留這個會話,因爲他們通過菜單導航其他路徑,所以我可以繼續顯示那些相關的路徑。
如果用戶直接鏈接到路徑頁面(不是通過搭乘)。我需要知道這一點,以便我可以顯示所有路徑,因爲我沒有任何關聯的路徑。
我個人發現會話總是一種不好的方式來處理我認爲你正在嘗試做的事情。 如果你可以解釋Ride Page和Trail Page之間的關係,並且可能發佈相關代碼,我想我們可能會找到更好的方法來處理它。 – Zauberfisch
謝謝。我已添加更新和更多代碼 – Fraser
此代碼在哪個類中? 並追蹤一頁或一個數據對象? – Zauberfisch