2012-10-17 111 views
0

我正在使用Symfony 1.4並已創建schema.yml,其中3個,並創建了具有多個連接的database.yml。Symfony如何實現模型

並執行的symfony構建--model和創建的類其中之一是「計劃」,它來自有列模式:編號,名稱,描述....

如何使用類使用它的方法或函數,setter和getters?書說如果生成一個模型,就有setter和getter。

如何使用過濾器檢索數據?

回答

1

你的問題有點含糊。但是從你的模型,你可以這樣做:

創建一個條目:

$schedule = new Schedule(); 
$schedule->setName('foo'); 
$schedule->setDescription('bar'); 
$schedule->save(); 

找到所有條目

$schedules = Doctrine_Core::getTable('Schedule')->findAll(); 

檢索一個項目(如果我們假設一個Schedule存在with id 1)

你的模型內

接入領域

$name  = $schedule->getName(); 
$description = $schedule->getDescription(); 

編輯:

自吸,在ScheduleTable.class.php

public function findByStatusAndRangeTime($status, $start, $end) 
{ 
    $q = $this->createQuery('s'); 
    $q->where('s.status = ? AND s.time_start < ? AND s.time_end > ?', array($status, $start, $end)); 

    return $q->execute(); 
} 

然後,您可以通過調用它:

$schedule = Doctrine_Core::getTable('Schedule')->findByStatusAndRangeTime('pending', '1:00', '5:00'); 
+0

此行 「Doctrine_Core :: getTable( '日程') - >查找(1)」 系統怎樣知道 「1」 是 「ID」 或沒有任何列?我怎樣才能指定過濾器? – oneofakind

+0

因爲'id'是Doctrine中的默認主鍵。所以'find()'方法使用PK在表上進行搜索。你是什​​麼意思的過濾器? – j0k

+0

就像如果例如Schedule有一列狀態,時間開始和時間結束,我想過濾它只在特定的時間星期內完成狀態,直到某個時間結束。只有狀態=未決,時間開始<1:00和時間結束> 5:00 .. – oneofakind