我对此有点困惑.我希望这是我错过的非常明显的事情!我有一个非常简单的形式:
<form class="form-signin" role="form" name="login" method="POST" action="/page">
<input type="password" name="password" />
<input type="submit" value="Sign in" />
</form>
Run Code Online (Sandbox Code Playgroud)
注意:此页面位于/page以下HTML之后并在之后回显:
在/page我有这个在文件的顶部:
<?php
var_dump($_SERVER['REQUEST_METHOD']);
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它总是显示为GET我提交此表单时.如果我把action="/page"它拿出来然后就会显示出来POST.我在这里错过了什么?
注意:即使我加载页面,然后在上述var_dump()调用后退出,它仍然显示GET.
在检查员的时间表中,我看到了这个请求:

我目前正在Windows上开发WampServer并且已经开始Composer工作(有OpenSSL),Propel安装没有问题,一切似乎都运行正常.但是,我的项目现在需要使用此处Equal Nest Behaviour找到的内容.
我以为这会让我使用推进行为.在我的schema.xml我有以下片段:
<table name="friend">
<behavior name="equal_nest">
<parameter name="parent_table" value="user" />
</behavior>
</table>
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时propel-gen sql我得到了错误:
[phingcall] Unknown behavior "equal_nest"; make sure you configured the propel.be
havior.equal_nest.class setting in your build.properties
Run Code Online (Sandbox Code Playgroud)
文件说:
然后,如果您不在应用程序中使用Composer或自动加载器,请将以下配置添加到build.properties或propel.ini文件中:
让我假设我没有必要放入build.properties文件.但是,放入它会给我以下错误:
PHP Fatal error: Class 'EqualNestParentBehavior' not found in C:\home\movesleag
ue.com\vendor\craftyshadow\propel-equalnest-behavior\src\EqualNestBehavior.php o
n line 74
Run Code Online (Sandbox Code Playgroud)
我不确定这是否与自动加载无法工作或命名空间有关(我的架构有一个命名空间,但我也删除了同样的错误).
我的composer.json文件看起来像这样:
{
"require": {
"craftyshadow/propel-equalnest-behavior": "dev-master"
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我确实在那里有Propel,但由于同样的行为需要它本身,我只是让它做它的工作.
那么,在Composer中使用Propel行为的正确方法是什么,如果我做得对,为什么我会看到上面的错误?
更新
我在顶部添加了这一行EqualNestBehaviour.php:
include __DIR__ …Run Code Online (Sandbox Code Playgroud) 我正在使用Stripe在网上设置Apple Pay,并希望使用我们在iTunes Connect中设置的Sanbox Tester帐户在Safari中的iOS和macOS上进行测试.
在测试设备(2017 iPad)上,我使用Sandbox Tester帐户登录iCloud,并在设置应用程序中将测试卡添加到电子钱包中.在我的开发网站上,Apple Pay按钮显示,交互工作正常.
我在MacBook Pro(Retina,2015年中)创建了一个新帐户,并使用相同的Sandbox Tester帐户再次登录iCloud.但是,当我在此处查看我的开发网站时,该checkAvailability函数始终返回false:
Stripe.applePay.checkAvailability(function(available) {
alert(available);
...
}
Run Code Online (Sandbox Code Playgroud)
大概这是因为我需要进一步设置Apple Pay才能工作.但对于我的生活,我无法让macOS合作.在阅读了一些文档后,我认为这些点是相关的:
我是否可以使用切换在macOS上使用我的沙箱用户启用测试付款,如果是这样,我错过了哪些步骤?
window.ApplePaySession.canMakePayments()在控制台中运行返回false此处列出的步骤均适用于两台设备.当我在MacBook上打开Safari并导航到某个页面时,多任务屏幕上会显示切换图标,反之亦然,当我在iOS Safari中打开一个标签时,切换图标会显示在停靠栏的左侧.它似乎切换工作正常.
此外,Universal Clipboard正在双向工作.
注意:在使用不同iPad切换的同一台MacBook上的另一个(非沙盒)iCloud帐户上,付款选项会按预期显示在Safari中.
我有一个开发Web服务器(CentOS LAMP堆栈),它使用postfix中的SMTP中继设置来发送电子邮件.我们使用带有多个用户的mailgun,类似于此的设置,但是使用特定用户而不仅仅是通配符电子邮件:
/etc/postfix/main.cf中
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_auth_enable = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map
smtp_sender_dependent_authentication = yes
smtp_sasl_security_options = noanonymous
relayhost = [smtp.mailgun.org]:587
Run Code Online (Sandbox Code Playgroud)
/等/后缀/ sasl_passwd
# our domains
no-reply@domain.com postmaster@domain.com:password1
info@domain2.com postmaster@domain2.com:password2
support@domain3.com postmaster@domain3.com:password3
# in-case we don't have it setup, use a default
#[smtp.mailgun.org]:587 postmaster@domain2.com:password2
Run Code Online (Sandbox Code Playgroud)
/等/后缀/ relayhost_map
no-reply@domain.com [smtp.mailgun.org]:587
info@domain2.com [smtp.mailgun.org]:587
support@domain3.com [smtp.mailgun.org]:587
Run Code Online (Sandbox Code Playgroud)
要设置电子邮件日志记录,我使用自己的SMTP凭据验证计算机上的每个开发人员.我想设置它,以便开发人员不需要在postfix中添加additional_headers或additional_parameters获取正确的smtp中继匹配 - 事实上,在代码中为不同的开发人员设置不同的邮件头需要做很多工作,特别是对于版本化的码.我离题了.当我使用以下内容时,这在postfix的方面工作得很好:
mail('email@address.tld', 'subject', 'message here...', 'From: noreply@domain.com', '-fnoreply@domain.com');
Run Code Online (Sandbox Code Playgroud)
所以我然后将以下内容添加到vhost配置中:
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fnoreply@domain.com"
Run Code Online (Sandbox Code Playgroud)
这成功地让我摆脱了-f additional_parameter …
我正在使用Propel 2.我通过关系保湿对象,如下:
$return = OrderQuery::create()
->joinWith('Customer')
->joinWith('Status')
->find()
->toArray(TableMap::TYPE_PHPNAME, true, [], true);
Run Code Online (Sandbox Code Playgroud)
生成的数组看起来像这样:
{
"Id": 1,
"CustomerId": 1,
"StatusId": 1,
"Initiated": "2016-01-01T01:01:01+00:00",
"Customer": {
"Id": 1,
"Forname": "Test",
"Surname": "Smith",
"Orders": [
"*RECURSION*"
]
}
"Status": {
"Id": 1,
"Title": "title 1",
"Priority": 1,
"Orders": [
"*RECURSION*"
]
},
}
Run Code Online (Sandbox Code Playgroud)
我想删除值为的字段*RECURSION*.我尝试使用$alreadyDumpedObjects(第3个)参数,toArray()但似乎没有帮助.我也可以通过unset()调用来做某种形式的数组行走,但是我希望有更好的方法,也许是格式化程序或其他东西?
对于奖励积分,我非常想删除定义外键关系的列.例如,CustomerId会去,但Customer会留下来.
我使用自定义SQL连接两个表,将一些业务逻辑应用于日期,然后使用结果来水合推进对象(集合).这是我的代码:
$testtypes = TesttypeQuery::create()->find();
foreach ($testtypes as $testtype) {
/* work out what most recent schedule */
$con = \Propel::getConnection(SchedulePeer::DATABASE_NAME);
$sql = "SELECT `schedule`.*, (`schedule`.`last` + INTERVAL `duration`.`weeks` WEEK + INTERVAL `duration`.`months` MONTH + INTERVAL `duration`.`years` YEAR) AS `dueDate` FROM `schedule` LEFT JOIN `duration` ON `schedule`.`duration_id` = `duration`.`id` HAVING `schedule`.`testtype_id` = {$testtype->getId()} AND `dueDate` < NOW() ORDER BY `dueDate` ASC LIMIT 1";
$stmt = $con->prepare($sql);
$stmt->execute();
$formatter = new \PropelObjectFormatter();
$formatter->setClass(SchedulePeer::OM_CLASS);
$schedules = $formatter->format($stmt);
// more stuff here ...
} …Run Code Online (Sandbox Code Playgroud) 我一直在关注http://www.atinfinity.info/wiki/index.php?OpenCV/Using%20OpenCV%202.2%20on%20iOS%20SDK%204.2上的简单指南(使用旧指南我也读过在http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en),以获得编译在iOS 4.2的工作OpenCV2.2.一切顺利,直到我试图建立.当我运行以下内容时:
lc:opencv_simulator leonard$ ../opencv_cmake.sh Simulator ../../OpenCV-2.2.0/
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/libSystem.dylib,
file was built for i386 which is not the architecture being linked (x86_64)
Run Code Online (Sandbox Code Playgroud)
这是使用(显然在其他设置中):
-D CMAKE_OSX_ARCHITECTURES="i386"
Run Code Online (Sandbox Code Playgroud)
我在OSX 10.6上看到i386被视为默认值,因此它使用系统默认值(但是x86_64).我也读过我可以用的:
export CFLAGS=-m32
export CPPFLAGS=-m32
Run Code Online (Sandbox Code Playgroud)
但这也不起作用.
有任何想法吗?
我们正在开发一个过滤系统,您可以在其中获得一组选项,例如:
颜色 红色,蓝色,绿色
价格范围 £0-£5,£6-£10,£11 +
让 阿迪达斯,耐克,匡威
每个选项都是一个复选框.我们使用以下逻辑进行过滤:
所以,如果我要检查Red,Blue,£0-£5,Nike和Converse,那么逻辑将是:
(红色或蓝色)AND(£0-5)AND(Nike OR Converse)
每个复选框都有一个ID.我希望使用上面的逻辑构建一个选择器,但我不确定在jQuery中执行它的最佳方法.显然,ANDs只是附加在一起,ORs(或等效的)在这些选择器中使用命令,但如果没有某种分组方式,那将破坏逻辑,即:
$('(#red,#blue)(#price0to5)(#nike,#converse)')
任何建议或替代方案?
我写了一个非常简单的应用程序来更新我在给定条件下的推特状态.我使用了twitter文档来了解创建OAuth签名的要求以及如何构建Authorization标头.然后我用PHP中的cURL发送请求.
使用twitter开发站点上的OAuth工具,我比较了我的签名基本字符串和授权标题,两者完全相同:
签名基本字符串
POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json&oauth_consumer_key%3DYNxxxxxxxxxxxWnfI6HA%26oauth_nonce%3D31077a3c7b7bee4e4c7e2b5185041c12%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1340729904%26oauth_token%3D2991771-4csoiO2fxmWgSxxxxxxxxxxDjWj2AbyxATtiuadNE%26oauth_version%3D1.0%26status%3Dblah%2520test%2520blah.
Run Code Online (Sandbox Code Playgroud)
授权标头
Authorization: OAuth oauth_consumer_key="YN4FLBxxxxxxxxxxI6HA", oauth_nonce="31077a3c7b7bee4e4c7e2b5185041c12", oauth_signature="M2cXepcxxxxxxxxxxAImeAjE%2FHc%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1340729904", oauth_token="2991771-4cxxxxxxxxxxSmRvjzMoooMDjWj2AbyxATtiuadNE", oauth_version="1.0"
Run Code Online (Sandbox Code Playgroud)
显然我已经用一些字符替换了x隐藏我的数据,但比较两个字符的字符会产生完全相同的结果.作为参考,我硬编码OAuth工具生成的时间戳和随机数,以便我的值可以相同以进行检查.我的访问级别设置为读取和写入.在同一页面上有一个最后的例子 - 在命令行上使用cURL运行的命令.当我运行此命令时,它完美地工作并发布到我的Twitter提要没有问题.
考虑到这一点,我相信到目前为止我创建的所有内容都很好,并且不认为我发布代码可以生成前面提到的详细信息.然而,我使用cURL进行调用的代码,我认为是罪魁祸首,但不能说明原因:
<?php
// ...
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $baseUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Authorization: $header"));
curl_setopt($curl, CURLOPT_POSTFIELDS, array('status' => $status));
$result = json_decode(curl_exec($curl));
curl_close($curl);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)
请注意$baseUrl,$header和$status生成签名基本字符串和授权标头时使用的变量相同,只是匹配得很好.
运行时页面的输出是:
object(stdClass)#1 (2) { ["error"]=> string(34) "Could not authenticate with OAuth." ["request"]=> string(23) "/1/statuses/update.json" }
Run Code Online (Sandbox Code Playgroud)
我希望这里有足够的细节让某人指出我正确的方向!
我有以下表格:
user,logbook,user_logbook
用户日志是一个联结表(isCrossRef="true"在schema.xml中),包含user_id和logbook_id外键.
我还想记住任何给定用户当前选择的日志,所以我current_logbook_id也在我的user表中放了一个,并给了一个外键.但是,在我的BaseUserQuery.php文件中,我得到了两个filterByLogbook()函数.
我知道,当你有两个外键到同一个表,从相同的表,你得到的功能,如getUserRelatedBySomething()和getUserRelatedBySomethingElse(),但什么是在这种情况下做的最好的事情吗?
我当然可以删除外键并只使用保存的ID,或者我想我可以创建一个新的联结表(虽然这似乎不正确).在这种情况下,最好的做法是在MySQL 和 Propel 中"做正确的事"(希望我能够做到这两点!).