laravel 6 调用未定义的函数 Facuz\Theme\array_get()

Aja*_*jay 4 laravel

带有laravel 6 主题和资产管理包 Facuz\Theme package

返回错误调用未定义的函数 Facuz\Theme\array_get()

return is_null($key) ? $this->themeConfig : array_get($this->themeConfig, $key);
Run Code Online (Sandbox Code Playgroud)

小智 7

这似乎是 Laravel 6.0 中的一个重大变化

5.6 - 使用以下内容

array = ['products' => ['desk' => ['price' => 100]]];

$price = array_get($array, 'products.desk.price');
Run Code Online (Sandbox Code Playgroud)

6.0 - 使用以下内容

$array = ['products' => ['desk' => ['price' => 100]]];

$price = Arr::get($array, 'products.desk.price');
Run Code Online (Sandbox Code Playgroud)

https://laravel.com/docs/6.0/helpers#method-array-get

https://laravel.com/docs/5.6/helpers#method-array-get

看起来这个调用只在代码库中的 3 个地方使用:

https://github.com/FaCuZ/laravel-theme/search?q=array_get&unscoped_q=array_get

答:尝试更新包中的调用以匹配 6.0(假设没有其他重大更改)这应该可以工作。如果它有效,我相信很多人会感谢拉取请求。


Kir*_*rtJ 6

Laravel 6.x 和 7.x 使用Arr::get()相当于array_get(). 要使用它,请在控制器或 php 文件的顶部 添加数组外观use Illuminate\Support\Arr;

use Illuminate\Support\Arr;

$array = ['products' => ['desk' => ['price' => 100]]];
$price = Arr::get($array, 'products.desk.price');
Run Code Online (Sandbox Code Playgroud)

有关 laravel 6.x 数组和助手的更多信息