有没有可能的方法将MySQL对象转换为条件对象?我试过这个查询:
select
p.disrepid,
p.subject, p.body,
c.disrepid as disrepid1,
c.subject as subject1,
c.body as body1
from discusreply as p, discusreply as c
where p.distopid=' . $this->id . '
and (c.disrepid = p.parentid or c.parentid = p.distopid)
order by p.disrepid ASC
Run Code Online (Sandbox Code Playgroud)
我尝试了很多将这个查询转换为a Criteria
,但没有任何反应.我想要这个标准对象将它传递给Pager类以完成分页.
$pager->setCriteria($c);
.
我有推进这个问题
$units = UnitQuery::create()->find();
Run Code Online (Sandbox Code Playgroud)
我正在尝试对返回的结果进行分页,所以我想我需要使用PropelPager,根据文档创建这样的
$criteria = new Criteria();
$criteria->add(BookPeer::AUTHOR, $authorId);
$pager = new PropelPager($criteria, 'BookPeer', 'doSelect', $page = 1, $rowsPerPage = 30);
Run Code Online (Sandbox Code Playgroud)
我不明白的是如何将$units
我经常使用的1行查询转换为$criteria
.
此外,有没有使用像一个正常的查询方式$units
与PropelPager
?它会更容易比更改查询使用$criteria
和doSelect
等.
我有2个实体:与Child有一对多关系的Parent.
我使用$parent->getChilds()
Propel自动生成的方法来获取所有的孩子.
然后我用不同的方法手动添加(或删除)一些新的孩子:
$child = new Child();
$child->setParentId($parent->getId());
$child->save();
Run Code Online (Sandbox Code Playgroud)
现在,如果我回想一下这个getChilds
方法,我会得到相同的原始子项(并且对数据库也没有额外的查询).
我知道这是更好的行为,更有效率,但有没有办法强制重新获取?
谢谢.
我正在尝试在我的查询中添加以下条件
AND momento_distribution.MOMENTO_IDMEMBER IN ( 5, 1, 3, 10, 11, 12, 18, 32, 51, 6 )
Run Code Online (Sandbox Code Playgroud)
为此,我有以下代码
$friendCsv=Friend::getFriendIdAsCsv($member); //returning string 5, 1, 3, 10, 11, 12, 18, 32, 51, 6
//code
$c->add(MomentoDistributionPeer::MOMENTO_IDMEMBER, $friendCsv, Criteria::IN);
Run Code Online (Sandbox Code Playgroud)
查询失败,因为它正在生成
AND momento_distribution.MOMENTO_IDMEMBER IN ( '5, 1, 3, 10, 11, 12, 18, 32, 51, 6' )
Run Code Online (Sandbox Code Playgroud)
在字符串上添加单引号.如果我手动删除该单引号,查询将成功运行.
有没有办法强制推动不要将单引号放在值中?
在CLI上运行此commad:
php app/console propel:build
拿到
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]必须定义参数"propel.path".
在app/config/config.yml我已经:
propel: path: "%kernel.root_dir%/../vendor/propel" phing_path: "%kernel.root_dir%/../vendor/phing" logging: %kernel.debug% ...
我正在使用Symfony2中的PropelBundle安装说明并通过composer安装.
系统信息:
Apache/2.2.22 (Win64) PHP/5.3.13 "name": "phing/phing", "version": "2.4.12", "name": "propel/propel-bundle", "version": "1.1.x-dev", "name": "propel/propel1", "version": "dev-master", "name": "sensio/generator-bundle", "version": "2.1.x-dev", "name": "symfony/symfony", "version": "2.1.x-dev", Wamp server Version 2.2 Win7 64
任何帮助将非常感谢!
以下SQL查询在Propel(1.4)中的外观如何?
SELECT SUM(`price_equipment`) FROM `order_equipment` WHERE `order_id` = 57072;
Run Code Online (Sandbox Code Playgroud)
我使用谷歌进行了一些研究,但我找到的所有例子都考虑了计数GROUP BY子句.我只需要一个值.
我有一个数据库设置(当前只有两个表:用户和电子邮件正在进行中)并与Propel集成.注册用户时,我会检查以确保电子邮件不存在(作为电子邮件表中的当前电子邮件或用户数据库中的原始电子邮件).
为了简单地使用推进,我使用以下内容:
if(EmailQuery::create()->filterByCurrent(TRUE)->findOneByEmailAddress($email) != NULL) {
// email address being used currently
} else if(UserQuery::create()->findOneByOriginalEmail($email) != NULL) {
// email address claimed on account already
}
Run Code Online (Sandbox Code Playgroud)
第一个查询工作正常,但第二个查询生成并出错:Syntax error: 7 ERROR: syntax error at or near "."
Propel生成的SQL查询如下所示:
SELECT user.id, user.original_email, user.password, user.accept_terms, user.paid, user.customer_id, user.trial_end, user.created_at, user.updated_at, user.ip_address FROM user WHERE user.original_email=:p1 LIMIT 1
如果我将其复制并粘贴到phpPgAdmin中,它将返回相同的错误(并指向用户和列之间的每个.).我是PostgreSQL的新手,是否有一些我遗漏的语法片段?我使用的所有其他Propel查询构建器都顺利工作.
我发布了类似的问题,但无法解决.我创建了一个用户和组的关系数据库,但由于某种原因,我无法正确插入测试数据.以下是架构的示例:
User:
actAs: { Timestampable: ~ }
columns:
name: { type: string(255), notnull: true }
email: { type: string(255), notnull: true, unique: true }
nickname: { type: string(255), unique: true }
password: { type: string(300), notnull: true }
image: { type: string(255) }
Group:
actAs: { Timestampable: ~ }
columns:
name: { type: string(500), notnull: true }
image: { type: string(255) }
type: { type: string(255), notnull: true }
created_by_id: { type: integer }
relations:
User: { onDelete: SET NULL, …
Run Code Online (Sandbox Code Playgroud) 我有这个架构:
shop_products:
_attributes: { phpName: ShopProduct }
products_id: { phpName: Id, type: INTEGER, size: '11', primaryKey: true, autoIncrement: true, required: true }
products_quantity: { phpName: Quantity, type: INTEGER, size: '4', required: true }
products_model: { phpName: Model, type: VARCHAR, size: '12', required: false }
products_image: { phpName: Image, type: VARCHAR, size: '64', required: false }
products_price: { phpName: Price, type: DECIMAL, size: '15', scale: '4', required: false, defaultValue: '0.0000' }
products_date_added: { phpName: DateAdded, type: TIMESTAMP, required: true }
products_last_modified: …
Run Code Online (Sandbox Code Playgroud) 在过去的两个月里,我一直在建设一个新项目,我可能已经运行了10-15次推进,直到前几天.我做了一个快速的梨升级,然后推进gen om和似乎得到一个我不明白的错误.
我试过两个Windows机器和一台Linux机器,我一直得到同样的错误.
首先,任何人都有一个完整的项目,我可以尝试和建立,以排除这是相关的可能性.
有什么明显的吗?
我的build.properties看起来像这样
#start of file
# Database driver
propel.project = Cream
propel.targetPackage = {propel.project}
propel.database = mysql
project.home = C:\xampp\htdocs\Cream
project.build = ${project.home}/propel
propel.output.dir = ${project.home}
propel.php.dir = ${propel.output.dir}/ActiveRecord
propel.phpconf.dir = ${propel.output.dir}/ActiveRecord/config
propel.sql.dir = ${project.build}/sql
propel.database.url = mysql:host=localhost;dbname=cream
propel.database.user = root
propel.database.password =
propel.addGenericAccessors = true
propel.addGenericMutators = true
propel.addTimeStamp = true
propel.addIncludes = false
#end of file
Run Code Online (Sandbox Code Playgroud)
错误信息很多
could not instantiate class propelSQLTask
could not instantiate class propelSchemaReverseTask
could not instantiate class propelDataSQLTask
Run Code Online (Sandbox Code Playgroud)
等等
我正在尝试使用Propel 2对数据库进行逆向工程.但每次我尝试运行模型时:build命令都会出现以下错误:
[Propel\Generator\Exception\InvalidArgumentException]
Invalid database name: no configured connection named 'default'
Run Code Online (Sandbox Code Playgroud)
它说"没有配置连接"?? 但是能够使用"reverse"命令从数据库生成schema.xml吗?
提前致谢.
我使用Propel ORM复制表模式,以便进行持续集成,但Propel只让我得到一个完全充实的模式,它不会让我获得测试数据(或者根本不需要基本的必要数据).
如何从具有版本控制的propel-gen
Propel ORM生态系统的实时/测试数据库中获取数据?