Symfony1 Symfony如何实现模型

Symfony1 Symfony如何实现模型,symfony1,Symfony1,我正在使用Symfony 1.4,已经创建了其中的3个schema.yml,并创建了具有多个连接的database.yml 执行了symfony的build-model并创建了类,其中一个是“Schedule”,它来自于具有以下列的模式:id、name、description 如何使用该类来使用其方法或函数setter和getter?书中说,如果生成模型,就有setter和getter 如何使用过滤器检索数据?您的问题有点模糊。但根据您的模型,您可以: 创建一个条目: $schedule = n

我正在使用Symfony 1.4,已经创建了其中的3个schema.yml,并创建了具有多个连接的database.yml

执行了symfony的build-model并创建了类,其中一个是“Schedule”,它来自于具有以下列的模式:id、name、description

如何使用该类来使用其方法或函数setter和getter?书中说,如果生成模型,就有setter和getter


如何使用过滤器检索数据?

您的问题有点模糊。但根据您的模型,您可以:

创建一个条目:

$schedule = new Schedule();
$schedule->setName('foo');
$schedule->setDescription('bar');
$schedule->save();
查找所有条目

$schedules = Doctrine_Core::getTable('Schedule')->findAll();
检索一个项目(如果我们假设存在一个id为1的
计划

访问模型内部的字段

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

编辑:

$schedule = new Schedule();
$schedule->setName('foo');
$schedule->setDescription('bar');
$schedule->save();
自定义getter,在
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();
}

这一行“Doctrine_Core::getTable('Schedule')->find(1)”系统如何知道“1”是到“id”还是不到任何列?如何指定筛选器?因为
id
是原则中的默认主键。所以
find()
方法使用PK在表上搜索。你所说的过滤器是什么意思?例如,如果日程表有一列status、time start和time end,我想过滤它,使其仅在某个时间段内处于完成状态,直到某个时间段结束。仅与状态=挂起类似,时间开始<1:00,时间结束>5:00。。
$schedule = Doctrine_Core::getTable('Schedule')->findByStatusAndRangeTime('pending', '1:00', '5:00');