Files
tp/app/index/controller/BannerController.php
T
2026-03-10 22:59:46 +08:00

61 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
namespace app\index\controller;
use app\index\BaseController;
use think\response\Json;
use think\facade\Db;
/**
* Banner 控制器
*/
class BannerController extends BaseController
{
/**
* 获取 Banner 列表
* @return Json
*/
public function getBanners(): Json
{
// 从 BaseController 获取当前租户ID
$tid = $this->getTenantId();
if (empty($tid)) {
return json([
'code' => 400,
'msg' => '无法识别租户信息',
'list' => [],
]);
}
// 查询该租户下的 Banner
$banners = Db::name('mete_apps_cms_banner')
->where('tid', $tid)
->whereNull('delete_time')
->order('sort', 'asc')
->order('id', 'desc')
->select()
->toArray();
// 处理图片路径
foreach ($banners as &$banner) {
if (!empty($banner['image'])) {
// 如果图片路径已经是完整 URL,直接返回
if (!preg_match('/^https?:\/\//', $banner['image'])) {
// 拼接完整 URL
$banner['image'] = $this->request->scheme() . '://' . $this->request->host() .
(strpos($banner['image'], '/') === 0 ? '' : '/') . $banner['image'];
}
}
}
return json([
'code' => 200,
'msg' => 'success',
'list' => $banners,
]);
}
}