准备工作
思路如下:
1,第一反应就是建数据表,确定对应关系
2,建表模型(方便CURD,m2禁止直接用sql操作)
3,后台页面控制器
4,后台页面布局
5,前台页面控制器
6,前台页面布局
7,调试页面并写css
建表
要建2个表,
一个表记录实体店信息。表名为physical_store
一个表记录实体店的店员信息。表名为physical_stores_staff
physical_store
表结构如下:
id | in | 11 | 自增id |
---|---|---|---|
name | VARCHAR | 255 | 实体店名称 |
url_key | VARCHAR | 255 | 实体店网址 |
description | TEXT | 实体店描述 | |
street | VARCHAR | 255 | 实体店街道 |
postcode | VARCHAR | 20 | 实体店邮编 |
city | VARCHAR | 100 | 实体店城市 |
country_code | VARCHAR | 2 | 实体店国家 |
latitude | VARCHAR | 255 | 坐标 |
longitude | VARCHAR | 255 | 坐标 |
phone | VARCHAR | 255 | 电话 |
VARCHAR | 255 | 邮箱 | |
website | VARCHAR | 255 | 官网 |
opening_hours | TEXT | 营业时间 | |
status | SMALLINT | 6 | 状态 |
mage_store_ids | VARCHAR | 255 | |
custom_field1 | VARCHAR | 255 | |
custom_field2 | VARCHAR | 255 |
physical_stores_staff
表结构如下:
id | int | 11 | 自增 |
---|---|---|---|
store_id | INT | 11 | 对应的实体店id |
title | VARCHAR | 255 | 标题 |
firstname | VARCHAR | 255 | 名 |
lastname | VARCHAR | 255 | 姓 |
phone | VARCHAR | 255 | 电话 |
VARCHAR | 255 | 邮箱 | |
image | VARCHAR | 255 | 图片 |
status | SMALLINT | 6 | 状态 |
sort_order | SMALLINT | 6 | 排序 |
image_holder | SMALLINT | 6 |
建表模型
因为M2后台增删改查都是通过数据表模型来读取/修改/插入/删除的。不是直接用的sql。
所以要对这2个表 建立模型
可以看到要建6个文件。
一个表对应3个文件。
在Model/里定义
后台控制器
插件后台主url为demoadmin
在etc/adminhtml/routes.xml里定义的
那么实体店后台页面访问地址为
http://magento2demo.texiaoyao.cn/demoadmin/physicalStore/index
后台控制器代码在Controller/Adminhtml下面
其实控制器里做的事情非常少,就一个路由,麻烦事都给布局xml和block做了。
后台页面布局
之前在讲主题的时候说过,m2的页面布局都是在xml里配置的。
每个页面的布局都是唯一的xml。
在view/adminhtml/layout里定义的
注意,这里的xml文件里都是定义的block,所以我们要在Block里写逻辑代码。
后台页面block文件在Block/Adminhtml/里
前台控制器
插件后台主url为demo
在etc/frontend/routes.xml里定义的
那么实体店前台页面访问地址为
http://magento2demo.texiaoyao.cn/demo/physicalStore/index
前台的页面比较简单,就是展示。
有2个页面
- 所有的实体店列表
- 实体店详情页面
前台控制器代码在Controller/下面
其实控制器里做的事情非常少,就一个路由,麻烦事都给布局xml和block做了。
前台页面布局
之前在讲主题的时候说过,m2的页面布局都是在xml里配置的。
每个页面的布局都是唯一的xml。
在view/frontend/layout/里定义的
注意,这里的xml文件里都是定义的block,所以我们要在Block里写逻辑代码。
前台页面block文件在Block/里