小编rap*_*2-h的帖子

Guzzle 6:没有更多的json()方法用于响应

以前在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)

还是有帮手或类似的东西?

php guzzle

153
推荐指数
5
解决办法
9万
查看次数

升级到Babel 7:无法读取null的属性"绑定"

我刚刚通过运行以下命令升级到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)

我做错了什么?

javascript node.js babeljs

88
推荐指数
1
解决办法
4万
查看次数

Laravel Socialite:InvalidStateException

我正在使用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的问题不同,因为在我的情况下它是随机的.

php facebook laravel laravel-5

52
推荐指数
8
解决办法
5万
查看次数

Laravel测试,获取JSON内容

在Laravel的单元测试中,我可以像这样测试一个JSON API:

$this->post('/user', ['name' => 'Sally'])
    ->seeJson([
        'created' => true,
    ]);
Run Code Online (Sandbox Code Playgroud)

但是,如果我想使用响应怎么办?如何使用$this->post()?获取JSON响应(作为数组)?

phpunit laravel laravel-5

37
推荐指数
8
解决办法
3万
查看次数

Laravel的"soft_delete"是否需要MySQL的索引?

如果我在laravel 4.2(数据库是mysql)中使用软删除,那么每个雄辩的构建查询都有WHERE deleted_at IS NULL.没有索引deleted_at.

  • 大桌子会慢吗?(或者可能没有索引优化IS NULL)
  • 我应该在soft_delete上添加索引吗?

那么,Laravel的"soft_delete"是否需要MySQL的索引?

mysql indexing optimization laravel eloquent

29
推荐指数
3
解决办法
3970
查看次数

package.json中的节点引擎8.x或10.x.

我试图在package.json中指定节点引擎来接受它们810版本.

我试着输入这个:

"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

javascript node.js npm package.json yarnpkg

25
推荐指数
2
解决办法
2万
查看次数

如何在redis上的laravel队列中获取所有挂起的作业?

队列侦听器未在服务器上启动,某些作业被推送(使用Redis驱动程序).

我怎么能算上(或得到所有)这些工作?我没有找到任何工匠命令来获取这些信息.

redis laravel

22
推荐指数
5
解决办法
2万
查看次数

在 useEffect 2nd param 中使用对象而不必将其字符串化为 JSON

在 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)

有没有更好的方法来做到这一点并避免不必要的效果调用?

旁注:对象具有嵌套属性。效果必须在此对象内的每个更改上运行。

javascript json reactjs react-hooks

20
推荐指数
1
解决办法
1万
查看次数

laravel 5中的配置缓存导致未找到视图

我想要渲染一个简单的视图:

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)

为什么只有没有缓存配置才能工作?

php laravel laravel-5

16
推荐指数
1
解决办法
5164
查看次数

我应该避免在生产应用程序中打开包装吗?

在运行时很容易崩溃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核心和编程的问题.

error-handling rust

16
推荐指数
3
解决办法
1555
查看次数