我正在使用Paypal IPN向网站添加订阅,这非常有效,我可以成功创建新订阅并进行验证.订阅有两周的免费试用期.遗憾的是,该指南对订阅状态略显模糊.
目前,一旦收到subscr_signup或subscr_payment,用户帐户就会获得订阅状态,并在收到subscr_cancel或subscr_failed时被删除.我相信这是正确的,但最好确保.
什么是subscr_eot?IPN指南将其描述为"订阅的期末".试用期结束后是否会触发?
我需要选择User.site_url不为null的所有行.在常规MySQL查询中执行此操作非常简单,但是如何在CakePHP中完成此操作?
手册提到了以下内容:
array ("not" => array (
"Post.title" => null
)
)
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但它仍然返回一切
$this->User->find('all', array('conditions' => array('not' => array('User.site_url'))));
Run Code Online (Sandbox Code Playgroud) 我正在为我正在开发的一个小项目添加一些新功能,其中一个是alpha分页,看起来像
#0-9 ABCDE ... XYZ
我可以使用类似的东西轻松地通过他们的第一个字母获取项目
SELECT * FROM ... WHERE name LIKE 'A%' ...
Run Code Online (Sandbox Code Playgroud)
将以数字和所有其他字符开头的所有内容分组有点困难,我认为它必须使用MySQLs REGEXP.
为了清楚起见,我需要帮助创建两个查询,这些查询将获取所有行
我已经使用CakePHP几个星期了,这是一次很棒的体验.我设法以惊人的速度快速移植了一个网站,我甚至添加了一些我计划但从未实现过的新功能.
查看以下两个控制器,它们允许用户将优质状态添加到链接到其帐户的其中一个站点.他们感觉不是很'蛋糕',他们能以任何方式得到改善吗?
PremiumSites控制器处理注册过程,并最终会有其他相关的事情,如历史记录.
class PremiumSitesController extends AppController {
var $name = 'PremiumSites';
function index() {
$cost = 5;
//TODO: Add no site check
if (!empty($this->data)) {
if($this->data['PremiumSite']['type'] == "1") {
$length = (int) $this->data['PremiumSite']['length'];
$length++;
$this->data['PremiumSite']['upfront_weeks'] = $length;
$this->data['PremiumSite']['upfront_expiration'] = date('Y-m-d H:i:s', strtotime(sprintf('+%s weeks', $length)));
$this->data['PremiumSite']['cost'] = $cost * $length;
} else {
$this->data['PremiumSite']['cost'] = $cost;
}
$this->PremiumSite->create();
if ($this->PremiumSite->save($this->data)) {
$this->redirect(array('controller' => 'paypal_notifications', 'action' => 'send', $this->PremiumSite->getLastInsertID()));
} else {
$this->Session->setFlash('Please fix the problems below', true, array('class' => 'error')); …Run Code Online (Sandbox Code Playgroud) 我目前正在使用similar_text将一个字符串与~50,000的列表进行比较,虽然由于比较的数量非常慢,但它仍有效.比较~500个独特字符串大约需要11分钟.
在运行之前,我会检查数据库以查看它是否已经过去处理,因此每次运行后它都接近即时.
我肯定使用levenshtein会稍快一些,并且手册中发布的LevenshteinDistance函数看起来很有趣.我错过了一些可以使这个显着加快的东西吗?
可以说我的范围是0到100,并且我想返回一个包含3个整数的数组,该整数均匀地分布在该范围内,什么是最好的方法?
例如:
范围:0-100
通缉:3
返回:25、50、75
我一次创建多个关联,在保存方面存在一些问题.
我有以下代码:
<?php
foreach($userData as $user) {
$data = array('User' => array('id' => $user['id']), 'Site' => array('id' => $user['site_id']));
$this->User->save($data);
}
?>
Run Code Online (Sandbox Code Playgroud)
虽然我总是遇到同样的问题,但我已经尝试过以不同的方式格式化数据数组.插入新的条目或更新当前条目时,前一个条目将被移动.
我可以使用以下内容,但我需要触发一个行为.
$this->User->SiteUser->save($data);
Run Code Online (Sandbox Code Playgroud)
编辑:还$ this-> User-> create(); 似乎做得不多.
命名包含多个单词的变量的最佳方法是什么?在完成CakePHP forge中的许多项目后,我注意到人们使用camelCase,下划线或camelCase来获取发送到视图的数据的变量和下划线.
最后一个例子是:
$activeSites = $this->Site->find('all',array('conditions'=>array('Site.active' => '1'), 'recursive' => -1));
$this->controller->set('active_sites', activeSites);
Run Code Online (Sandbox Code Playgroud) 我一直想要提高我的正则表达技能已经有一段时间了,而且"掌握正则表达式"被推荐了很多次,所以我买了它并且在过去一天左右阅读它.
我创建了以下正则表达式:
^(?:<b>)?(?:^<i>)?<a href="/site\.php\?id=([0-9]*)">(.*?) \(([ a-z0-9]{2,10})\)</a>(?:^</i>)?(?:</b>)?$
Run Code Online (Sandbox Code Playgroud)
哪个匹配前两个链接但忽略<i>标记所包含的两个链接.它提取id,标题和类型.
<a href="/site.php?id=6321">site 1 title (type 1)</a>
<b><a href="/site.php?id=10254">site 2 title (type 2)</a></b>
<i><a href="/site.php?id=5479">site 3 title (type 3)</a></i>
<b><i><a href="/site.php?id=325">site 4 title (type 4)</a></i></b>
Run Code Online (Sandbox Code Playgroud)
虽然它有效,但对于这么简单的东西来说似乎相当长,可以改进吗?
php ×6
cakephp ×4
regex ×2
database ×1
html ×1
integer ×1
matching ×1
mysql ×1
numbers ×1
paypal ×1
paypal-ipn ×1
range ×1
refactoring ×1
similarity ×1
sql ×1