以前在Guzzle 5.3中:
$response = $client->get('http://httpbin.org/get');
$array = $response->json(); // Yoohoo
var_dump($array[0]['origin']);
Run Code Online (Sandbox Code Playgroud)
我可以轻松地从JSON响应中获取PHP数组.现在在Guzzle 6中,我不知道该怎么做.似乎没有json()
方法了.我(很快)从最新版本中读取了文档,但没有找到任何关于JSON响应的内容.我想我错过了一些东西,也许有一个我不理解的新概念(或者我没有正确阅读).
这是(下面)新方式的唯一途径吗?
$response = $client->get('http://httpbin.org/get');
$array = json_decode($response->getBody()->getContents(), true); // :'(
var_dump($array[0]['origin']);
Run Code Online (Sandbox Code Playgroud)
还是有帮手或类似的东西?
我刚刚通过运行以下命令升级到Babel 7(从6开始):
npm remove babel-cli
npm install --save-dev @babel/cli @babel/core @babel/preset-env
Run Code Online (Sandbox Code Playgroud)
这是我的.babelrc
档案:
{ "presets": ["env"] }
Run Code Online (Sandbox Code Playgroud)
然后我跑了:
babel js/src --out-dir js/dist
Run Code Online (Sandbox Code Playgroud)
它导致:
TypeError: Cannot read property 'bindings' of null
at Scope.moveBindingTo (/xyz/node_modules/@babel/traverse/lib/scope/index.js:867:13)
at BlockScoping.updateScopeInfo (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17)
at BlockScoping.run (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12)
at PluginPass.BlockStatementSwitchStatementProgram (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24)
at newFn (/xyz/node_modules/@babel/traverse/lib/visitors.js:193:21)
at NodePath._call (/xyz/node_modules/@babel/traverse/lib/path/context.js:53:20)
at NodePath.call (/xyz/node_modules/@babel/traverse/lib/path/context.js:40:17)
at NodePath.visit (/xyz/node_modules/@babel/traverse/lib/path/context.js:88:12)
at TraversalContext.visitQueue (/xyz/node_modules/@babel/traverse/lib/context.js:118:16)
at TraversalContext.visitSingle (/xyz/node_modules/@babel/traverse/lib/context.js:90:19)
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我正在使用Laravel Socialite在网站上添加Facebook连接按钮.有时候,我在回调时遇到了这个错误:
exception 'Laravel\Socialite\Two\InvalidStateException'
in /example/vendor/laravel/socialite/src/Two/AbstractProvider.php:161
Run Code Online (Sandbox Code Playgroud)
我不知道这是什么意思,也没有发现任何关于这个错误的信息.真正的问题是它似乎是一个随机的例外(不明白它为什么会发生).那么这个错误意味着什么,以及如何避免它?
它似乎与Laravel 5在AbstractProvider.php中引发InvalidStateException的问题不同,因为在我的情况下它是随机的.
在Laravel的单元测试中,我可以像这样测试一个JSON API:
$this->post('/user', ['name' => 'Sally'])
->seeJson([
'created' => true,
]);
Run Code Online (Sandbox Code Playgroud)
但是,如果我想使用响应怎么办?如何使用$this->post()
?获取JSON响应(作为数组)?
如果我在laravel 4.2(数据库是mysql)中使用软删除,那么每个雄辩的构建查询都有WHERE deleted_at IS NULL
.没有索引deleted_at
.
那么,Laravel的"soft_delete"是否需要MySQL的索引?
我试图在package.json中指定节点引擎来接受它们8
和10
版本.
我试着输入这个:
"engines": {
"node": "8.x|10.x"
},
Run Code Online (Sandbox Code Playgroud)
但运行yarn
结果:
引擎"节点"与此模块不兼容.预期版本"8.x | 10.x"
如果我替换为:
"engines": {
"node": "10.x"
},
Run Code Online (Sandbox Code Playgroud)
......它有效(即没有错误).
有没有办法接受两个版本的节点引擎package.json
?
队列侦听器未在服务器上启动,某些作业被推送(使用Redis驱动程序).
我怎么能算上(或得到所有)这些工作?我没有找到任何工匠命令来获取这些信息.
在 JS 中,两个对象不相等。
const a = {}, b = {};
console.log(a === b);
Run Code Online (Sandbox Code Playgroud)
所以我不能在useEffect
(React hooks)中使用一个对象作为第二个参数,因为它总是被认为是假的(所以它会重新渲染):
const a = {}, b = {};
console.log(a === b);
Run Code Online (Sandbox Code Playgroud)
这样做(上面的代码),每次组件重新渲染时都会产生运行效果,因为每次都认为对象不相等。
我可以通过将对象作为 JSON 字符串化值传递来“破解”它,但这有点脏 IMO:
function MyComponent() {
// ...
useEffect(() => {
// do something
}, [myObject]) // <- this is the object that can change.
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点并避免不必要的效果调用?
旁注:对象具有嵌套属性。效果必须在此对象内的每个更改上运行。
我想要渲染一个简单的视图:
public function test()
{
return \View::make('test');
}
Run Code Online (Sandbox Code Playgroud)
我缓存我的配置:
$ php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
Run Code Online (Sandbox Code Playgroud)
当我在网络浏览器中运行它时,我得到了:
InvalidArgumentException in FileViewFinder.php line 140:
View [test] not found.
in FileViewFinder.php line 140
at FileViewFinder->findInPaths('test', array('/XXXXXX/resources/views')) in FileViewFinder.php line 77
at FileViewFinder->find('test') in Factory.php line 145
at Factory->make('test') in Facade.php line 213
... (framework backtrace)
Run Code Online (Sandbox Code Playgroud)
我清除配置缓存...
$ php artisan config:clear
Configuration cache cleared!
Run Code Online (Sandbox Code Playgroud)
...呈现视图(这是一个简单的HTML视图resources/views/test.blade.php
)
为什么只有没有缓存配置才能工作?
在运行时很容易崩溃unwrap
:
fn main() {
c().unwrap();
}
fn c() -> Option<i64> {
None
}
Run Code Online (Sandbox Code Playgroud)
结果:
Compiling playground v0.0.1 (file:///playground)
Running `target/debug/playground`
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:325
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Process didn't exit successfully: `target/debug/playground` (exit code: 101)
Run Code Online (Sandbox Code Playgroud)
是unwrap
唯一专为快速测试和证明的概念?
我不能肯定"我的程序不会崩溃,所以我可以使用unwrap
",如果我真的想panic!
在运行时避免,我认为避免panic!
是我们想要的生产应用程序.
换句话说,如果我使用,我可以说我的程序是可靠的unwrap
吗?或者unwrap
即使案件看似简单,我也必须避免吗?
我读到了这个答案:
当您确定没有错误时,最好使用它.
但我认为我不能"肯定".
我不认为这是一个意见问题,而是一个关于Rust核心和编程的问题.