我为此挠头。我有下表:
<table name="activity" idMethod="native" phpName="Activity">
<column name="id" phpName="Id" type="INTEGER" size="13" primaryKey="true" autoIncrement="true" required="true"/>
<column name="created" phpName="Created" type="TIMESTAMP" required="true" defaultExpr="CURRENT_TIMESTAMP"/>
<column name="modified" phpName="Modified" type="TIMESTAMP" required="true" defaultExpr="CURRENT_TIMESTAMP"/>
<column name="provider_id" phpName="ProviderId" type="INTEGER" size="13" required="true"/>
<column name="name" phpName="Name" type="VARCHAR" size="100" required="true"/>
<column name="description" phpName="Description" type="LONGVARCHAR"/>
<column name="grade_min" phpName="GradeMin" type="INTEGER" size="2" required="true" defaultValue="0"/>
<column name="grade_max" phpName="GradeMax" type="INTEGER" size="2" required="true" defaultValue="12"/>
<column name="duration" phpName="Duration" type="INTEGER" size="3" required="true" defaultValue="60"/>
<column name="image" phpName="Image" type="VARCHAR" size="255" required="true" defaultValue=""/>
<column name="webpage" phpName="Webpage" type="VARCHAR" size="255" required="true" defaultValue=""/>
<column name="approved" phpName="Approved" type="CHAR" sqlType="enum('Y','N')" required="true" defaultValue="N"/>
<foreign-key foreignTable="provider" name="activity_provider" onUpdate="CASCADE">
<reference local="provider_id" foreign="id"/>
</foreign-key>
<unique name="provider_name">
<unique-column name="provider_id"/>
<unique-column name="name"/>
</unique>
<vendor type="mysql">
<parameter name="Engine" value="InnoDB"/>
</vendor>
</table>
我执行以下 PHP:
$approved = $activity->getApproved();
if($approved == "N"){
$activity->setApproved("Y"); // verified this line is executing
} else {
$activity->setApproved("N");
}
echo $activity->getApproved(); // this outputs "Y"
$activity->save(); // produces line in the query log
die($activity->getApproved()); // this outputs "N"
该方法在查询日志中生成一行save()
:
[2018-02-26T17:00:09.038703-08:00] default.INFO: UPDATE activity SET approved='N' WHERE activity.id=6 [] []
当该approved
字段设置为Y
时,相同的查询运行并成功(该字段切换为N
)。有什么想法可能会在这里发生吗?Propel2 讨厌 ENUM 吗?有什么建议可以解决这个问题吗?