文件还在测试中

This commit is contained in:
2026-08-08 15:53:53 +08:00
parent 5f1e7adb64
commit 8101177cb5
241 changed files with 18074 additions and 22 deletions
+57
View File
@@ -0,0 +1,57 @@
<?php
namespace App\Models;
use Core\Db;
use Core\Model;
/**
* 逐页 SEO 设置模型
* 表 page_seo 以 page_keyhome/products/product_category/news/cases/about/contact)为主键,
* 后台可逐页维护 标题/描述/关键词/Open Graph/规范链接/收录开关。
*/
class PageSeo extends Model
{
protected $table = 'page_seo';
protected $primaryKey = 'id';
/** 按 page_key 取单条 */
public function getByKey(string $key): ?array
{
$row = Db::query("SELECT * FROM {$this->table} WHERE page_key = ?", [$key])->fetch();
return $row ?: null;
}
/** 全部以 page_key 为索引返回 */
public function allIndexed(): array
{
$rows = Db::query("SELECT * FROM {$this->table} ORDER BY sort ASC, id ASC")->fetchAll();
$out = [];
foreach ($rows as $r) {
$out[$r['page_key']] = $r;
}
return $out;
}
/** 存在则更新,不存在则插入 */
public function saveRow(string $key, array $data): void
{
$exists = Db::query("SELECT 1 FROM {$this->table} WHERE page_key = ?", [$key])->fetch();
if ($exists) {
$sets = [];
$params = [];
foreach ($data as $k => $v) {
$sets[] = "`{$k}` = ?";
$params[] = $v;
}
$params[] = $key;
Db::query("UPDATE {$this->table} SET " . implode(', ', $sets) . " WHERE page_key = ?", $params);
} else {
$cols = array_keys($data);
$ph = array_fill(0, count($cols), '?');
Db::query(
"INSERT INTO {$this->table} (`page_key`, `" . implode('`,`', $cols) . "`) VALUES (?, " . implode(',', $ph) . ")",
array_merge([$key], array_values($data))
);
}
}
}