内容模型与字段

模型是"内容长什么样",字段是"有哪些格子"。手把手建一个产品模型,并把每种字段类型在模板里怎么输出讲清楚。

约 8 分钟 建站 代码块右上角可一键复制
本页目录(8 分钟读完)

这一章只做两件事:怎么建内容模型、怎么加字段。

产品、案例、下载、职位,都能在这里建。不用改代码,不用动数据库。

入口:后台 →「内容」→「内容模型」(/admin/model)。

怎么建一个内容模型#

作用:定义「这一类内容有哪些格子」。比如产品有型号、价格、图集。

步骤:

  1. 点左侧「内容」→「内容模型」
  2. 点「新建」
  3. 按下表填
  4. 点「保存」
填什么填什么说明
模型标识product只能用小写字母、数字、下划线
模型名称产品后台显示的名字
类型栏目型会有很多条内容就选它
说明公司产品资料写给自己看,可不填

类型怎么选:

类型什么时候选例子
栏目型会有很多条新闻、产品、案例
单页型只有一条关于我们、联系方式
页面型独立页面帮助页、活动页
文本
模型标识建完就不能改了。
想好再填:product / case / download。
不要用中文,不要用 product-list 这种带横线的。

建不出来?→ 看 排错手册

怎么给模型加字段#

作用:给模型加一个格子。比如产品要有「型号」。

步骤:

  1. 进「内容模型」
  2. 点这个模型后面的「字段管理」
  3. 点「新建字段」
  4. 按下表填
  5. 点「保存」
填什么填什么说明
字段名model_no小写字母、数字、下划线;建完不能改
显示名产品型号后台表单上的字
类型text看下一节表
必填是 / 否是 = 不填不让保存

产品模型常用字段(照着建就行):

字段名显示名类型必填
model_no产品型号text是
price价格number否
gallery产品图集images否
spec规格参数textarea否
is_hot首页推荐switch否
release_date上市日期date否
category产品分类select否
manual说明书file否
文本
建完模型后,系统已经自带一批内置字段:
标题、正文、封面… 这些所有模型都有,不用你再建。
你要加的是「产品」独有的。

字段加错了?→ 看「怎么改字段、删字段」

字段类型怎么选#

一张表看完。先看后台长什么样,再看模板里怎么用。

类型后台长什么样模板里怎么用
text单行输入框{$item.model_no}
textarea多行文本框{$item.spec|nl2br|raw}
editor富文本编辑器{$item.content|raw}
number数字输入{$item.price}
select下拉选择{$item.category}
radio单选按钮同 select
checkbox多选{loop $item.tags_array as $t}{$t}{/loop}
switch开关{if $item.is_hot == 1}…{/if}
date日期选择{$item.release_date}
datetime日期+时间{$item.release_date|date=Y-m-d H:i}
color取色器写进样式里
image单图<img src="{$item.thumb}">
images多图{loop $item.gallery as $g}<img src="{$g}">{/loop}
file单文件<a href="{$item.manual}">下载</a>
files多文件同 images,循环
tags标签{loop $item.tags_array as $t}{$t}{/loop}
url链接<a href="{$item.link}">
email邮箱{$item.mail}
relation关联内容需要自己按 id 查
resdownload下载盒{$item._download_html|raw}

select 的选项怎么填:

在「选项定义」里,一行一个,格式是 值|显示名:

文本
indoor|室内机
outdoor|室外机
accessory|配件
文本
select 存的是「值」,不是「显示名」。
上面存的是 indoor,不是「室内机」。
前台要显示中文:把 select 换成 tags 类型最省事。

怎么改字段、删字段#

步骤:

  1. 进「内容模型」
  2. 点这个模型后面的「字段管理」
  3. 找到要改的字段
  4. 点「编辑」或「移除」
能改什么效果
显示名表单上的字
必填不填不让保存
启用 / 停用停用后表单里不出现,数据还在
提示输入框下面的小灰字
移除彻底去掉这个字段
文本
「标题」「所属栏目」不能停用、不能删。
删了的话:没有标题 = 列表里是一行空白;
没有栏目 = 前台进不了任何列表页。

改类型要小心:

动作后果
把 text 改成 images旧数据读不出来,图变空
改字段名程序取不到值,模板全空
改模型标识系统直接禁止

一定要改类型?→ 先备份,或者新建字段,把数据搬过去

怎么改内置字段#

「标题」想改叫「产品名称」?「正文」不要了?都能改。

步骤:

  1. 进「内容模型」→「字段管理」
  2. 在内置字段列表里找到它
  3. 点「编辑」
  4. 改显示名,或把「启用」关掉
  5. 点「保存」
想做什么怎么做
改名字只改「显示名」
表单里不显示关掉「启用」
彻底不要点「移除」

发完内容怎么在模板里取值#

内容发出去之后,每个字段有两份值:

写法内容什么时候用
{$item.字段名}原始值自己控制输出,最常用
{$item._字段名_html}渲染好的 HTML图片、富文本,省事

例子:

HTML
{* 图片,自己拼 *}
{if !empty($item.thumb)}
<img src="{$item.thumb|thumb=400,260}" alt="{$item.title}">
{/if}

{* 富文本,必须 raw *}
<div class="body">{$article.content|raw}</div>

{* 多图,循环 *}
{if !empty($article.gallery)}
  {loop $article.gallery as $img}
  <img src="{$img}" alt="{$article.title}">
  {/loop}
{/if}

模板语法记不住?→ 看 模板标签速查

六个坑,提前避开#

坑怎么避
字段名不能改建之前想好:price 还是 sale_price
字段名不能用中文、不能带横线只用 a-z、0-9、_
改类型会让旧数据读不出来改之前备份,或新建字段迁移
images 要循环,file 直接输出看上面类型表
停用 ≠ 删除停用只是不显示;要彻底去掉用「移除」
删模型默认不删内容想一起删,勾「同时删除内容」;勾了不能恢复

下一步#

没找到答案? 在后台「缓存与维护 → 系统体检」里看环境是否正常;仍无解就打开 server_debug.php 复现一次,页面会直接告诉你异常文件与行号。