0
我想在表單中合併兩個值到Kohana中使用過濾器的組合字符串中,但是我無法解決如何做到這一點/如果它甚至是最好的方法來做到這一點。Kohana ORM過濾器
我有兩個值,一個表格中的日期和時間,我想在模型中將其轉換爲紀元時間字符串,並將該值保存到數據庫的日期時間字符串中 - 實現此目的的最佳方法是什麼?
我想在表單中合併兩個值到Kohana中使用過濾器的組合字符串中,但是我無法解決如何做到這一點/如果它甚至是最好的方法來做到這一點。Kohana ORM過濾器
我有兩個值,一個表格中的日期和時間,我想在模型中將其轉換爲紀元時間字符串,並將該值保存到數據庫的日期時間字符串中 - 實現此目的的最佳方法是什麼?
在這種情況下,過濾器是你最好的朋友。下面你可以找到例子,如何使用它們:
public function filters()
{
return array(
// Trim all fields
TRUE => array(
array('trim'),
),
// Your callback function
'your_column' => array(
array(array($this, 'your_callback'))
),
);
}
public function your_callback($value)
{
return strtotime($this->date . ' ' . $this->time);
}
這個過濾器將設置your_column
到strtotime($this->date . ' ' . $this->time)
- 當然這只是一個例子。請記住,在驗證之前調用過濾器。
編輯:
想通過我創建創建專用方法後:
public function create_($values, $expected)
{
$values['your_column'] = $values['date'] . ' ' . $values['time'];
values($values, $expected);
// Create the object
return $this->create();
}
當然,當你調用這個方法,不要在$expected
數組,但your_column
通過date
和time
:
ORM::factory('event')->create_($_POST, array('title','venue','your_column', 'guest_count', 'contact_name', 'contact_number','bartab','dj'));
好吧,這是有道理的,但我不能解決它的控制器端 - 我這樣做: '$ member = ORM :: factory('event') - > values($ _ POST,array('title','venue','date','time','guest_count','contact_name','contact_number ','bartab','dj'));'我得到一個錯誤。我會認爲它會傳遞來自POST的值,但忽略未在模型中定義的列 - 但它出錯了。很明顯,我做錯了,但無法解決如何做到最好。 –
看我的編輯:) – matino
非常感謝你! –