本文整理汇总了PHP中Transfer::setState方法的典型用法代码示例。如果您正苦于以下问题:PHP Transfer::setState方法的具体用法?PHP Transfer::setState怎么用?PHP Transfer::setState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transfer
的用法示例。
在下文中一共展示了Transfer::setState方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getCurrentTransferBundle
/**
* Get one Transfer::STATE_COLLECT transfer to bundle. If none exists one
* will be created. If the users state is NOT paid the state will set
* to Transfer::STATE_RESERVED.
*
* NOTE: This transfer wont get saved by this method!
*
* @param PropelPDO $con
* @return [type]
*/
public function getCurrentTransferBundle($currency, PropelPDO $con)
{
// $transfer = TransferQuery::create()
// ->filterByState([Transfer::STATE_COLLECT, Transfer::STATE_RESERVED])
// ->filterByMember($this)
// ->orderBy(TransferPeer::STATE, Criteria::DESC)
// ->findOne($con);
// SELECT * FROM ... FOR UPDATE
// to ensure consistency through table row lock
$sql = "SELECT * FROM " . TransferPeer::TABLE_NAME . " WHERE" . " member_id = :member_id AND" . " currency = :currency AND" . " state in (" . Transfer::STATE_COLLECT . ", " . Transfer::STATE_RESERVED . ")" . " ORDER BY state desc" . " FOR UPDATE";
$stmt = $con->prepare($sql);
$stmt->execute(array(':member_id' => $this->getId(), ':currency' => $currency));
$formatter = new PropelObjectFormatter();
$formatter->setClass('Transfer');
$transfer = $formatter->format($stmt);
if (count($transfer) > 0) {
$transfer = $transfer[0];
} else {
$transfer = null;
}
if (!$transfer) {
$transfer = new Transfer();
$transfer->setMember($this);
$transfer->setCurrency($currency);
if (!$this->hadPaid()) {
$transfer->setState(Transfer::STATE_RESERVED);
}
}
return $transfer;
}