Zend_Db_Table
大多数时候都会提供引号,即使您没有明确使用select()
Zend_Db 通常也会:
//query is broken into multiple line for more clarity and is just an example
$select = $this->getAdapter()->select();
$select->from('friendships');
$select->where('user1 = ?', $user1);
$select->where('user2 = ?', $user2);//successive where() will tie together with AND
$select->orWhere('user1 = ?', $user2);
只要您的查询使用select()
它们将被引用的对象。
当您需要在选择对象不可用的情况下进行插入或更新时,请使用 quoteInto():
//in your DbTable models
$where = $this->getAdapter()->quoteInto('user1 = ?', $user1);
$result = $this->getAdapter()->update($data, $where);
第二个问题是如何在 quoteInto 函数中输入多个值?
api是:
/* @param string $text The text with a placeholder.
* @param mixed $value The value to quote.
* @param string $type OPTIONAL SQL datatype
* @param integer $count OPTIONAL count of placeholders to replace
* @return string An SQL-safe quoted value placed into the original text.
*/
public function quoteInto($text, $value, $type = null, $count = null)
因此,实际上并不支持多个值quoteInto()
,但是还有其他可用的引用函数。
您如何验证模型中的输入?(不是表格)
使用验证表单时使用的相同类,使用Zend_Validate和Zend_Filter。最简单的方法是使用Zend_Filter_Input():
//multiple methods demonstrated
$filters = array('*'=>'StringTrim','zip'=> new Zend_Filter_Digits());
$validators = array('name'=>'Alnum');
$input = new Zend_Filter_Input($filters, $validators, $data);
if ($input->isValid()){//do some stuff}
最后一个问题,您遵循哪些步骤来创建应用程序 usign zend 框架?我的意思是,首先你计划你的项目,然后你编写模型,然后你编写控制器,最后是视图(假设你一个人工作)。
这是您的应用程序,按照您的意愿去做。不是要讽刺,但应用程序会让你知道它需要什么。通常你会得到一些要显示的东西和一些要操作的数据。然后去制定计划。