大佬教程收集整理的这篇文章主要介绍了推进区分大小写的phpNames列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的scheR_92_11845@a.xml的相关部分:
<database name="Inventory" defaultIdMethod="native">
<table name="Users" PHPName="User">
<column name="UserId" type="varchar" size="20" required="true" primaryKey="true" />
<column name="FirstName" type="varchar" size="255" required="true" />
<column name="LastName" type="varchar" size="255" required="true" />
<column name="password" type="varchar" size="255" required="true" />
<column name="Salt" type="char" size="22" required="true" />
<column name="RolEID" type="Integer" required="true" />
<column name="FailedLogins" type="Integer" required="true" DefaultValue="0" />
<column name="LockedOut" type="Boolean" required="true" DefaultValue="false" />
<column name="Active" type="Boolean" required="true" DefaultValue="true" />
</table>
...
</database>
以下命令失败,并出现PropelException:
UserQuery::create()
->filterByActive(true)
->update(array('FailedLogins' => 0, 'LockedOut' => falsE));
错误:
[Sat Nov 19 16:28:01 2011] [error] [client 127.0.0.11] PHP Fatal error: Uncaught exception 'PropelException' with message 'CAnnot fetch columnMap for undefined column PHPName: FailedLogins' in /home/andrew/pss-repository/vendor/propel/runtime/lib/map/TableMap.PHP:372\nStack trace:\n#0 /home/andrew/pss-repository/vendor/propel/runtime/lib/query/ModelCriteria.PHP(1668): TableMap->getcolumnByPHPName('FailedLogins')\n#1 /home/andrew/pss-repository/vendor/propel/runtime/lib/query/ModelCriteria.PHP(1626): ModelCriteria->doupdate(Array, Object(PropelPDO), falsE)\n#2 /home/andrew/pss-repository/login-reset-process.PHP(11): ModelCriteria->update(Array)\n#3 {main}\n thrown in /home/andrew/pss-repository/vendor/propel/runtime/lib/map/TableMap.PHP on line 372, referer: http://pss/login-reset-all.PHP
我能够验证在Propel生成的代码中FailedLogins列是否被标识为Failedlogins.我意识到我可以将PHPName添加到有问题的列中,但是我想知道是否错过了配置选项.我检查了Propel buildtime configuration page,然后看到一个名为propel.samePHPName的选项,但是由于它在“逆向工程”部分下,因此它似乎不是我需要的选项.其他人问了@L_419_1@,但是我没有看到明确的答案.
是否有一个配置选项可以使每列的PHPName与模式中的name属性简单匹配?
解决方法:
没有办法,也没有build属性.
实际上,您不应该像以前那样命名表属性,而应该对它们进行低估:
<table name="Users" PHPName="User">
<column name="user_id" type="varchar" size="20" required="true" primaryKey="true" />
<column name="first_name" type="varchar" size="255" required="true" />
<column name="last_name" type="varchar" size="255" required="true" />
<column name="password" type="varchar" size="255" required="true" />
<column name="salt" type="char" size="22" required="true" />
<column name="role_id" type="Integer" required="true" />
<column name="Failed_logins" type="Integer" required="true" DefaultValue="0" />
<column name="locked_out" type="Boolean" required="true" DefaultValue="false" />
<column name="active" type="Boolean" required="true" DefaultValue="true" />
</table>
这样,您将获得UserId,…,FailedLogins,…
威廉
以上是大佬教程为你收集整理的推进区分大小写的phpNames列全部内容,希望文章能够帮你解决推进区分大小写的phpNames列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。