
【主 题】:提交runing字段 【描 述】: [原因]:正则匹配 bind_route 添加runing字段 PS:对应取出bind_route的, 即分割符 [过程]: [影响]: 【结 束】
58 lines
1.5 KiB
PHP
58 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Yansongda\Supports;
|
|
|
|
use Closure;
|
|
|
|
if (!function_exists('collect')) {
|
|
function collect(array $value = []): Collection
|
|
{
|
|
return new Collection($value);
|
|
}
|
|
}
|
|
|
|
if (!function_exists('value')) {
|
|
function value(mixed $value): mixed
|
|
{
|
|
return $value instanceof Closure ? $value() : $value;
|
|
}
|
|
}
|
|
|
|
if (!function_exists('data_get')) {
|
|
function data_get(mixed $target, null|array|int|string $key, mixed $default = null): mixed
|
|
{
|
|
if (is_null($key)) {
|
|
return $target;
|
|
}
|
|
|
|
$key = is_array($key) ? $key : explode('.', is_int($key) ? (string) $key : $key);
|
|
|
|
while (!is_null($segment = array_shift($key))) {
|
|
if ('*' === $segment) {
|
|
if ($target instanceof Collection) {
|
|
$target = $target->all();
|
|
} elseif (!is_array($target)) {
|
|
return value($default);
|
|
}
|
|
$result = [];
|
|
foreach ($target as $item) {
|
|
$result[] = data_get($item, $key);
|
|
}
|
|
|
|
return in_array('*', $key) ? Arr::collapse($result) : $result;
|
|
}
|
|
if (Arr::accessible($target) && Arr::exists($target, $segment)) {
|
|
$target = $target[$segment];
|
|
} elseif (is_object($target) && isset($target->{$segment})) {
|
|
$target = $target->{$segment};
|
|
} else {
|
|
return value($default);
|
|
}
|
|
}
|
|
|
|
return $target;
|
|
}
|
|
}
|