2012-10-17 2 views
0

Symfony 1.4를 사용하고 있으며 이미 3 개의 schema.yml을 만들고 여러 연결로 database.yml을 만들었습니다.Symfony 모델 구현 방법

그리고 그들 중 하나가 열을 갖는 스키마에서 온 "일정"입니다 빌드 심포니의 --model 및 생성 된 클래스를 실행 : ID, 이름, 설명을 ....

방법에 클래스를 사용합니까 그것의 메서드 나 함수 인 setter와 getters를 사용합니까? 책은 모델이 생성되면 setter와 getter가 있다고 말합니다.

필터가있는 데이터는 어떻게 검색합니까?

답변

1

귀하의 질문은 다소 모호합니다. 그러나 모델에서 당신은 할 수 있습니다 : 우리는 하나 Schedule이 존재한다고 가정하면

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

는 (모든 항목

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

하나 개의 항목 검색을 찾기 :

는 항목을 작성 id 1)

모델 내부 53,210

액세스 필드

$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

Doctrine의 기본 기본 키는'id'입니다. 따라서 find() 메소드는 PK를 사용하여 테이블을 검색한다. 필터 란 무엇을 의미합니까? – j0k

+0

예를 들어 Schedule에 상태, time-start 및 time-end 열이있는 경우처럼 특정 시간 끝까지 특정 시간대의 완료 상태로만 필터링하려고합니다. status = pending, time-start <1:00 및 time-end> 5:00처럼 ... – oneofakind