Files
xk-api-yii/admin/components/UI/Tools.php
2024-09-19 11:32:39 +08:00

73 lines
1.8 KiB
PHP

<?php
namespace admin\components\UI;
use admin\components\UI\yii\Arr;
/**
* UI工具
* Class Table
* @package backend\components\UI
*/
class Tools
{
/**
* 解析对象数据
* @param object $data
* @param string $relation
* @param string|null $field
* @return string|string[]|null
*/
public static function parsingObjData(object $data, string $relation, string $field = null)
{
$relationData = $data->$relation;
if ($field) {
if ($relationData instanceof \Illuminate\Support\Collection) {
$tmp = [];
foreach ($relationData as $vo) {
$tmp[] = self::parsingArrData($vo, $field);
}
$data = implode(',', $tmp);
} else {
$data = self::parsingArrData($relationData, $field);
}
} else {
$data = '';
}
return $data;
}
/**
* 解析数组数据
* @param $data
* @param string|null $field
* @param bool $source
* @return string|string[]|null
*/
public static function parsingArrData($data, string $field = null, bool $source = false)
{
//$field = str_replace('->', '.', $field);
if (!$source) {
return $field ? Arr::get($data, $field) : '';
}
return Arr::has($data, $field) ? Arr::get($data, $field) : $field;
}
/**
* 标签转换
* @param $label
* @param null $relation
* @return string
*/
public static function converLabel($label, $relation = null): string
{
return str_replace(['.', '->'], "_", $relation ? $relation . '_' . $label : $label);
}
public static function converLabel2($label): string
{
return str_replace(['.', '->'], "']['",$label);
}
}