Symfony Php5 Mvc Framework

ADVERTISEMENT

Open-Source PHP5 MVC Framework
Agile Development
MODEL
Criteria/Criterion/RS
COMPARATORS
Criteria Class
CRITERIA
getIterator ()
To find records, use a Criteria object in conjunction with one of the Peer's methods:
CRITERIA
SQL
getMap ()
doSelect(), doSelectOne(), doSelectJoinXXX() , doSelectJoinAll(), retrieveByPk()
EQUAL
=
clear ()
NOT_EQUAL
<>
retrieveByPk(<value | array>)
GETTING A SPECIFIC RECORD
addAsColumn ($name, $clause)
Peer method
ALT_NOT_EQUAL
!=
SINGLE PRIMARY KEYS
getAsColumns ()
>
GREATER_THAN
// gets the record with primary key = 3
getColumnForAs ($as)
LESS_THAN
<
$obj = BookPeer::retrieveByPK(3);
addAlias ($alias, $table)
GREATER_EQUAL
>=
LESS_EQUAL
<=
COMPOST PRIMARY KEYS
getTableForAlias ($alias)
// gets the book_id=1,author_id=2 record
LIKE
LIKE
keys ()
$obj = BookAuthorXrefPeer::retrieveByPK(array(1,2));
NOT LIKE
NOT_LIKE
containsKey ($column)
Note: the order of keys is critical and must correspond to the order in
ILIKE
ILIKE
setUseTransaction ($v)
which the columns are defined in the XML (schema).
NOT_ILIKE
NOT ILIKE
isUseTransaction ()
CUSTOM
CUSTOM
doSelect(<empty criteria>)
GETTING ALL RECORDS
DISTINCT
DISTINCT
getCriterion ($column)
Peer method
IN
$questions = QuestionPeer::doSelect(new Criteria());
IN
getNewCriterion ($col, $val, $comp=null)
NOT_IN
NOT IN
getColumnName ($name)
doSelectOne(<object>)
GETTING ONE RECORD
ALL
ALL
Peer method
getTablesColumns ()
JOIN
JOIN
$c = new Criteria();
getComparison ($key)
BINARY_AND
&
$c->add(UserPeer::NICKNAME, $nickname);
BINARY_OR
|
$user = UserPeer::doSelectOne($c);
getDbName ()
ASC
ASC
setDbName ($dbName=null)
add(<column>, <value>, <comparator>)
SPECIFYING CONDITIONS USING COMPARATORS
DESC
DESC
Criteria method
getTableName ($name)
ISNULL
IS NULL
// default comparator: =
// id <> 17
getValue ($name)
ISNOTNULL
IS NOT NULL
$c = new Criteria();
$c = new Criteria();
get ($key)
$c->add(TableNamePeer::ID, 17);
$c->add(TableNamePeer::ID, 17, Criteria::NOT_EQUAL);
CURRENT_DATE
CURRENT_DATE
$obj = TableNamePeer::doSelect($c);
$obj = TableNamePeer::doSelect($c);
CURRENT_TIME
CURRENT_TIME
put ($key, $value)
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
CUSTOM:
putAll ($t)
LEFT_JOIN
LEFT JOIN
$c = new Criteria();
add ($p1, $value=null, $comparison=null)
RIGHT JOIN
RIGHT_JOIN
$c->add(tableNamePeer::RATING, "rating=rating +1", Criteria::CUSTOM);
addJoin ($left, $right, $operator=null)
INNER_JOIN
INNER JOIN
setLimit(<value>)
getJoins ()
LIMIT THE NUMBER OF RECORDS RETURNED
Criteria method
getJoinL ()
// first 5 results
ResultSet (RS) Methods
$c = new Criteria();
getJoinR ()
getResource()
getCursorPos()
$c->setLimit(5);
setAll ()
setFetchmode()
getRow()
addAscendingOrderByColumn(<column>)
setDistinct ()
ORDERING RECORDS
getFetchmode()
getRecordCount()
addDescendingOrderByColumn(<column>)
setIgnoreCase ($b)
Criteria methods
// first 10 authors, alphabetically
isLowerAssocCase()
close()
isIgnoreCase ()
$c = new Criteria();
next()
get()
setSingleRecord ($b)
$c->setLimit(10);
previous()
getArray()
$c->addAscendingOrderByColumn(AuthorPeer::LAST_NAME);
isSingleRecord ()
relative()
getBoolean()
setLimit ($limit)
absolute()
getBlob()
setIgnoreCase(<true|false>)
CASE SENSITIVITY
Criteria method
seek()
getClob()
getLimit ()
// find all authors named "max", case-insensitive
first()
getDate()
setOffset ($offset)
$c = new Criteria();
last()
getFloat()
getOffset ()
$c->add(AuthorPeer::FIRST_NAME, "max");
beforeFirst()
getInt()
$c->setIgnoreCase(true);
addSelectColumn ($name)
afterLast()
getString()
getSelectColumns ()
addJoin(<column_T1>, <column_T2>, <LEFT_JOIN|RIGHT_JOIN|INNER_JOIN>)
isAfterLast()
getTime()
JOINS
Criteria method
clearSelectColumns ()
isBeforeFirst()
getTimestamp()
$c = new Criteria();
getSelectModifiers ()
E.g. (criteria):
$c->addJoin(UserPeer::ID, InterestPeer::USER_ID, Criteria::LEFT_JOIN);
addGroupByColumn ($groupBy)
$c = new Criteria();
$c->add(InterestPeer::QUESTION_ID, $this->getId());
addAscendingOrderByColumn ($name)
$c->clearSelectColumns();
$obj = UserPeer::doSelect($c);
$c->addSelectColumn(userPeer::ID);
addDescendingOrderByColumn ($name)
clearSelectColumns()
$c->addSelectColumn(userPeer::USERNAME);
RETURNING SPECIFIC COLUMNS
addSelectColumn(<column>)
getOrderByColumns ()
$c->add(userPeer::USERNAME, "${username}%",
Criteria methods
$c = new Criteria();
clearOrderByColumns ()
Criteria::LIKE);
$c->clearSelectColumns();
clearGroupByColumns ()
$c->setLimit(5);
$c->addSelectColumn(userPeer::ID);
$c->setIgnoreCase(true);
getGroupByColumns ()
$c->addSelectColumn(userPeer::USERNAME);
$rs = userPeer::doSelectRS($c);
$c->add(userPeer::USERNAME, "${username}%", Criteria::LIKE);
getHaving ()
while($rs->next()){
$c->setLimit(5);
remove ($key)
$users[$rs->getInt(1)] = $rs->getString(2);
$c->setIgnoreCase(true);
toString ()
}
$rs = userPeer::doSelectRS($c);
size ()
E.g. (SQL):
while($rs->next()){ $users[$rs->getInt(1)] = $rs->getString(2); }
equals ($crit)
$con=Propel::getConnection(DATABASE_NAME);
addAsColumn(<alias>, <ALIAS(TableNamePeer::ID>)
ADD AN ALIAS TO COLUMN (AS clause)
$sql="SELECT books.* FROM books WHERE NOT EXISTS
addHaving (Criterion $having)
Criteria method
(SELECT id FROM review WHERE book_id = book.id)";
$c = new Criteria();
addAnd ($p1, $p2=null, $p3=null)
$stm = $con->createStatement();
$c->addAsColumn(”numUsers”, “COUNT(”.UserPeer::ID.”)”);
addOr ($p1, $p2=null, $p3=null)
$rs=$stm->executeQuery($sql, ResultSet::FETCHMODE_NUM);
USEFUL LINKS
CRITERION
getNewCriterion(<column>, <value>, <comparator>)
SPECIFYING MULTIPLE CONDITIONS FOR A COLUMN
Criteria method
propel reference
$c = new Criteria();
addOr(<condition>)
Criteria method
$criterion = $c->getNewCriterion(AuthorPeer::FIRST_NAME, "Leo%", Criteria::LIKE);
creole reference
$criterion->addOr($c->getNewCriterion(AuthorPeer::FIRST_NAME, "Leonardo", Criteria::NOT_EQUAL));
addAnd(<condition>)
Criteria method
$c->add($criterion);
COMBINING CRITERIA OBJECTS
online tool for convert pseudo-SQL
to criteria
combine Criterion objects in order to specify logical relationships between clauses
// Find all authors with first name "Leo" OR last name of "Tolstoy", "Dostoevsky", or "Bakhtin"
$c = new Criteria();
NOTE 1: Propel stores criteria in a
$cton1 = $c->getNewCriterion(AuthorPeer::FIRST_NAME, "Leo");
hashtable, for performance reasons.
$cton2 = $c->getNewCriterion(AuthorPeer::LAST_NAME, array("Tolstoy", "Dostoevsky", "Bakhtin"), Criteria::IN);
$cton1->addOr($cton2);
// combine them
NOTE 2:
some of the examples came from
$c->add($cton1);
// add to Criteria
the
Criteria Class Reference
on the
Propel
website.
This cheat-sheet is not an official part of the symfony documentation

ADVERTISEMENT

00 votes

Related Articles

Related forms

Related Categories

Parent category: Education
Go