这应该是一件容易的事情.我可以在Guzzle 3中找到很多关于如何操作的参考资料,但它们在Guzzle 5中不起作用.
到目前为止我在做什么:
$this->client = new GuzzleClient(['defaults' => [
'verify' => 'false'
]]);
Run Code Online (Sandbox Code Playgroud)
当我发送请求时,我收到此错误:
RequestException in RequestException.php line 51:
SSL CA bundle not found: false
Run Code Online (Sandbox Code Playgroud)
我在谷歌上找不到任何有用的参考这个错误.如果我可以访问curl选项,那么我可以尝试类似这里建议的解决方案(适用于Guzzle 3,因此它不起作用):http://inchoo.net/dev-talk/symfony2-guzzle -ssl-self-signed-certificate /,其相关部分是:
$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false);
$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false);
Run Code Online (Sandbox Code Playgroud) 我有一个.env包含我的数据库连接详细信息的文件,正如Laravel 5一样.我想覆盖这些用于测试,我可以做phpunit.xml.然而,这样做似乎违背了.env不提交环境配置,特别是密码的哲学.
有没有可能有类似的东西,.env.testing并告诉phpunit.xml从中读取?
我在这个例子中有两个类 - DeliveryMethod和Country.他们之间有着多对多的关系.
我想要做的是选择没有任何国家映射到它们的所有DeliveryMethods.
我可以这样做,即选择至少有一个国家的所有交付方式 -
SELECT m FROM DeliveryMethod m JOIN m.countries
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何选择国家/地区字段为空的位置.在纯SQL中我会做以下(deliverymethod_country是链接表):
SELECT m.* FROM deliverymethods m
LEFT JOIN deliverymethod_country dc ON dc.deliverymethod_id = m.id
WHERE dc.deliverymethod_id IS NULL
Run Code Online (Sandbox Code Playgroud)
但是,任何与此等效的DQL都不起作用,例如:
SELECT m FROM DeliveryMethod m LEFT JOIN m.countries WHERE m.countries IS NULL
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
[Syntax Error] line 0, col 75: Error: Expected end of string, got 'm'
Run Code Online (Sandbox Code Playgroud) 我有两个类--Page和SiteVersion,它们有很多关系.只有SiteVersion知道这种关系(因为该站点是模块化的,我希望能够带走并放入SiteVersion所属的模块).
因此,我如何根据SiteVersion的标准选择页面?
例如,这不起作用:
SELECT p FROM SiteVersion v JOIN v.pages p WHERE v.id = 5 AND p.slug='index'
Run Code Online (Sandbox Code Playgroud)
我收到错误:
[Doctrine\ORM\Query\QueryException]
[Semantical Error] line 0, col -1 near 'SELECT p FROM': Error: Cannot select entity through identification variables without choosing at least one root entity alias.
Run Code Online (Sandbox Code Playgroud)
即使我可以使用此查询选择"v".
我想我可以通过引入一个关系类(一个PageToVersion类)来解决这个问题,但有没有办法不这样做,或者让它双向化?
例如,如果我有以下字符串:
"这 - 是 - 一个字符串"
我可以每隔2个" - "而不是每个" - "拆分它,以便它返回两个值("this-is"和"a-string")而不是返回四个?
next,prev,nextAll和prevAll方法非常有用,但如果您尝试查找的元素不在同一个父元素中,则不会.我想做的是这样的:
<div>
<span id="click">Hello</span>
</div>
<div>
<p class="find">World></p>
</div>
Run Code Online (Sandbox Code Playgroud)
当click按下具有id的span时,我想将下一个元素与类匹配find,在这种情况下,该类不是被点击元素的兄弟,所以next()或nextAll()不起作用.
通常我会问如何变成这样的东西:
1 2 3
4 5 6
7 8 9
10 11 12
Run Code Online (Sandbox Code Playgroud)
进入:
1 4 7 10
2 5 8 11
3 6 9 12
Run Code Online (Sandbox Code Playgroud)
但实际上我想把它变成这个:
1 5 9
2 6 10
3 7 11
4 8 12
Run Code Online (Sandbox Code Playgroud)
换句话说,我想翻转行和列,但保持新数组的"宽度"和"高度"相同.我已经坚持了一个多小时.
这是我用来做普通"翻转"的功能(第一个例子):
function flip($arr)
{
$out = array();
foreach ($arr as $key => $subarr)
{
foreach ($subarr as $subkey => $subvalue)
{
$out[$subkey][$key] = $subvalue;
}
}
return $out;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用以下头命令生成csv文件:
header("Content-type: text/csv; charset=utf-8; encoding=utf-8");
header('Content-Disposition: attachment; filename="products.csv"');
Run Code Online (Sandbox Code Playgroud)
如果我在Excel 2007中打开文件,那么只要出现一个£符号,我就会获得£.但是,如果我在Notepad ++中打开文件,那么英镑符号看起来很好; 类似地,如果我将内容类型更改为text/plain并删除附件标题,则在浏览器中正确显示井号.
一个奇怪的事情是,如果我转到Notepad ++中的"格式"菜单,看起来该文件编码为"没有BOM的UTF-8".如果我将其更改为"以UTF-8编码",然后保存文件,则在Excel中正确显示井号.有没有办法使PHP文件以这种编码保存?
基本上与这个问题相同:如何在iPhone上制作无限长的滚动视图?但使用jQuery Mobile而不是客观C.
我正在使用这个插件:http://jquerymobile.com/test/experiments/scrollview/scrollview-direction.html,特别是"Horizontal Scrollview"下的示例.我希望它循环回自身,所以当用户到达最右边时,它将返回到开始,如果它们从开始向左滚动,它将结束.
如果解决方案特别使用scrollview插件,或者不仅仅是它可以产生类似的效果,我不会感到困扰.
更新:我最终做了一个不同的方式,因为移动元素到最后或列表的开头似乎与iPhone上的jQuery Mobile scrollview闪烁.
我所做的是将ul中的所有li元素复制3次,使其长4倍.然后在脚本开始时,将滚动点定位在第三个副本的开头(因此屏幕的最左侧点恰好是列表长度的一半).
然后,只要滚动位置超出第4个副本的开头,只需将滚动位置移回中间位置(偏移其上方的像素数).然后反过来相同,触发它就超出了第二个副本的开始.原因我需要4份副本,所以当你快速向左滚动时它有一点余地,它超出了第二个副本的开始.
我有这个代码用于发送POST请求的参数,它有效:
$client = new GuzzleHttp\Client();
$request = $client->createRequest('POST', 'http://example.com/test.php');
$body = $request->getBody();
$request->getBody()->replaceFields([
'name' => 'Bob'
]);
Run Code Online (Sandbox Code Playgroud)
但是,当我将POST更改为PUT时,我收到此错误:
Call to a member function replaceFields() on a non-object
Run Code Online (Sandbox Code Playgroud)
这是因为getBody返回null.
在体内发送PUT参数实际上是否正确?或者我应该在URL中执行此操作?