воскресенье, марта 22, 2009

Правильное расширение базовых классов Propel в symfony 1.2

Пусть наша модель называется SomeModel, тогда методом для извлечения объекта по строке(slug) будет:

class SomeModelPeer extends BaseSomeModelPeer
{
public static function retrieveBySlug($slug, PropelPDO $con = null){
if (null !== ($obj = SomeModelPeer::getInstanceFromPool((string) $slug))) {
return $obj;
}
if ($con === null) {
$con = Propel::getConnection(self::DATABASE_NAME, Propel::CONNECTION_READ);
}
$criteria = new Criteria();
self::addSelectColumns($criteria);
$criteria->add(self::SLUG,$slug);
$object = self::doSelectOne($criteria,$con);
if($object instanceof SomeModel){
self::addInstanceToPool($object);
}
return $object;
}
}

Комментариев нет: