Php 推进和PFBC 3.1中的验证过程错误

Php 推进和PFBC 3.1中的验证过程错误,php,forms,propel,Php,Forms,Propel,我使用的是Propel和PFBC(来自Builder类的php)。我使用php orm(数据库)在xml文件中编写了验证,现在我想在单击登录按钮时使用它们。这意味着我要检查表单变量和数据库验证规则的验证。我的xml代码如下所示 <table name="names" phpName="Name"> <column name="nameid" phpName="Nid" type="integer" size="11" required="true" primaryKey="tr

我使用的是Propel和PFBC(来自Builder类的php)。我使用php orm(数据库)在xml文件中编写了验证,现在我想在单击登录按钮时使用它们。这意味着我要检查表单变量和数据库验证规则的验证。我的xml代码如下所示

<table name="names" phpName="Name">
<column name="nameid" phpName="Nid" type="integer" size="11" required="true" primaryKey="true"
autoIncrement="true" description="Name ID"/>
<column name="name" phpName="Name" type="varchar" size="50" required="true"
description="Name"/>
<validator column="name">
<rule name="required" message="Name is Required"/>
<rule name="minLength" value="3" message="Enter Valid Full-Name, Minimum of 3 characters"/>
<rule name="maxLength" value="20" message="Invalid Entry"/>
<rule name="match" value="/^[\w]+$/" message="No Special Character Allowed"/>
<rule name="unique" />
</validator>
</table>

<table name="relations" phpName="Relations">
<column name="rid" type="integer" size="11" required="true" primaryKey="true" autoIncrement="true"
description="Relational ID"/>

<column name="pnid" type="integer" size="11" required="true" description="name User ID"/>

<column name="rnid" type="integer" size="11" required="true" description="name Relationship ID"/>

<column name="relation" type="varchar" size="100" required="true" description="Relationship"/>

<validator column="relation">
<rule name="required" message="Relationship Type is Required" />
<rule name="match" value="/^([\w])+([\.\w\-]+)+$/" message="Enter a Valid String" />
<rule name="minLength" value="3" message="Enter a Valid Relation Ship"/>
<rule name="maxLength" value="20" message="Invalid Entry"/>
</validator>

<foreign-key foreignTable="names" onUpdate="CASCADE" onDelete="CASCADE">
<reference local="pnid" foreign="nid" />
<reference local="rnid" foreign="nid" />
</foreign-key>
</table>

我猜您只是想知道如何运行Propel的验证?如果是这样,您可以这样做:

$name = new Name();
$name->setName($_POST['Name']); // or however you want to do it
// set other object properties

if (!$name->validate()) {
  $errors = $name->getValidationFailures();
  foreach ($errors as $field => $error) {
    // do something with the valiadtion errors
  }
}

我在C:\wamp\www\relations\spreep\runtime\lib\spreep.php的第573propertlexception行中遇到了类似于“在数据源[relations]的运行时配置文件中没有连接信息”的错误。异常:在数据源[relations]的运行时配置文件中没有连接信息在第573行的C:\wamp\www\relations\prople\runtime\lib\prople.php中,这可能是一个单独的问题,您可能希望将其作为一个单独的问题与完整的schema.xml和build.properties文件一起发布。我得到了它,它是log.php文件路径上的异常。另一个查询我在数据库中插入了一行,但没有错误现在我想在数据库中插入第二行,然后我得到了此错误致命错误:未捕获异常“PDOException”,消息为“SQLSTATE”[23000]:完整性约束冲突:密钥“profile____3”的1062重复条目“”错误位置为BaseName.php您能对此错误给出任何建议吗??