Files
bsh_sample/app/admin/controller/PostController.php
T
2025-12-08 17:37:34 +08:00

92 lines
3.3 KiB
PHP

<?php
namespace app\admin\controller;
use app\common\controller\BaseController;
use app\common\model\PostCategory;
use app\common\model\PostMedia;
use app\common\model\User;
use app\common\service\OssService;
use app\common\traits\crud\CrudControllerTrait;
use app\common\service\PostService;
class PostController extends BaseController
{
use CrudControllerTrait;
protected $service;
public function __construct()
{
$this->service = new PostService();
}
/**
* 列表页数据格式化
*
* @param array $data
* @return array
*/
protected function indexFormat($data)
{
if (isset($data['created_at']))
$data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
if (isset($data['updated_at']))
$data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
if (isset($data['id']))
$data['media'] = PostMedia::where('post_id', $data['id'])->get();
if (isset($data['category_id']))
$data['category_name'] = PostCategory::where('id', $data['category_id'])->value('name')??'';
$ossservice = new OssService();
if (isset($data['id'])){
$data['media'] = PostMedia::where('post_id', $data['id'])->get()->toArray();
foreach ($data['media'] as &$media) {
$media['url_pull'] = $ossservice->generatePrivateUrl($media['url']);
}
}
if (isset($data['user_id'])){
$data['user'] = User::where('id', $data['user_id'])->first();
unset($data['user']['password']);
$data['user']['avatar_pull'] = $data['user']['avatar'];
if(!str_contains($data['user']['avatar'], 'http') && !empty($data['user']['avatar'])){
$data['user']['avatar_pull'] = $ossservice->generatePrivateUrl($data['user']['avatar']);
}
}
return $data;
}
/**
* 列表页数据格式化
*
* @param array $data
* @return array
*/
protected function showFormat($data)
{
if (isset($data['created_at']))
$data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
if (isset($data['updated_at']))
$data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
if (isset($data['id']))
$data['media'] = PostMedia::where('post_id', $data['id'])->get();
if (isset($data['category_id']))
$data['category_name'] = PostCategory::where('id', $data['category_id'])->value('name')??'';
$ossservice = new OssService();
if (isset($data['id'])){
$data['media'] = PostMedia::where('post_id', $data['id'])->get()->toArray();
foreach ($data['media'] as &$media) {
$media['url_pull'] = $ossservice->generatePrivateUrl($media['url']);
}
}
if (isset($data['user_id'])){
$data['user'] = User::where('id', $data['user_id'])->first();
unset($data['user']['password']);
$data['user']['avatar_pull'] = $data['user']['avatar'];
if(!str_contains($data['user']['avatar'], 'http') && !empty($data['user']['avatar'])){
$data['user']['avatar_pull'] = $ossservice->generatePrivateUrl($data['user']['avatar']);
}
}
return $data;
}
}