Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" Header set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With" Header set Access-Control-Allow-Credentials "true"
1. 安装php
从这里下载Windows版的php,注意Laravel10只支持8.1或8.2,用8.3或更新的版本会出问题。下载后解压到指定目录就行,并把目录加入到环境变量Path内。 https://windows.php.net/download/
2. 安装composer
从这里下载composer在Windows上的安装程序,按照提示一步步安装就行,安装完后同样把安装路径加入到环境变量Path内。 https://getcomposer.org/Composer-Setup.exe
3. mysql数据库
可用已有的,也可现安装在本地并做好配置。
打开php目录下的php.ini文件,把以下3个选项前的注释符号去掉。
即:
;extension=fileinfo ;extension=mysqli ;extension=pdo_mysql
改为:
extension=fileinfo extension=mysqli extension=pdo_mysql
命令行进入到准备创建项目的路径下,在此执行语句。
composer create-project "laravel/laravel:^10.0" example-app
等待执行完毕,就创建了以“example-app”为名称的项目,可换成别的项目名称。
1. 打开刚才创建项目目录内的.env文件,注意以下关于数据库的配置,将其改成自己的数据库配置:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=
2. 命令行进入项目目录内,执行语句创建项目所需的数据表。
php artisan migrate
在此只给出默认的方法。命令行进入项目目录内,执行运行项目的指令。
php artisan serve
浏览器内输入默认的访问地址,即可出现该项目的界面。
http://127.0.0.1:8000/
/ec-cube/entry_get_token
方式:GET
参数:
id:获取Token的id,用于登录的是authenticate,用于购物车的是_token
返回结果:
{"id":"id值","value":"Token值"}/ec-cube/mypage/login 方式:POST 参数: login_email:登录邮箱地址 login_pass:登录密码明文 login_memory:是否保存登录状态,等于1即保留 _csrf_token:登录Token,需要用获取Token的接口拿到Token并赋值 返回结果: 跳转到EC-Cube首页
前提: 已在数据表内加入所需的字段,同时在数据模型类中加入对应的属性和setter/getter 在EC-Cube的目录内执行以下指令: php bin/console cache:clear php bin/console doctrine:cache:clear-metadata php bin/console doctrine:schema:update --dump-sql php bin/console doctrine:schema:update --force 注:如果报内存不足的异常,请把php.ini内的memory_limit属性调大 之后新加入的属性就全部生效了
/ec-cube/entry_auto_reg 方式:POST 参数: email:注册邮箱,以后需要用邮箱登录 password:密码明文 name01:姓 name02:名 kana01:姓的假名拼写 kana02:名的假名拼写 postal_code:邮政编码 addr01:地址区域部分 addr02:地址剩余部分,详细到门牌号等 phone_number:电话号码 sex:性别编码 job:工作编码 country:国家编码 pref:省份编码 skypeid:备用 email_received_text:备用 topimage:备用 trialclass:备用 beginner_class:备用 middle_class:备用 high_class:备用 返回结果: 跳转到EC-Cube的注册成功页面,以后就能用这个账号来登录了
都是返回JSON数组,都是同样的数据格式:[{"id":1,"name":"...","sortNo":0},{"id":2,"name":"...","sortNo":1},...],方式都是GET,无参数,一次返回全部数据。
/ec-cube/entry_dict/sexes
/ec-cube/entry_dict/jobs
/ec-cube/entry_dict/countries
/ec-cube/entry_dict/prefs
/ec-cube/%eccube_admin_route%/login 方式:POST 参数: login_email:登录用户名 login_pass:登录密码明文 _csrf_token:登录Token,需要用获取Token的接口拿到Token并赋值 返回结果: 跳转到EC-Cube控制台页面 注:%eccube_admin_route%是指EC-Cube的管理路由路径,需在安装时设置EC-Cube的管理员账号时设置,设定后就保持不变。
/ec-cube/entry_member_auto_reg 方式:POST 参数: login_id:登录名 password:密码明文 name:姓名 department:店名 skypeid:备用 email_received_text:备用 topimage:备用 point:备用 gakureki:备用 syokureki:备用 appeal:备用 trialclass:备用 beginner_class:备用 middle_class:备用 high_class:备用 返回结果: 跳转到EC-Cube的注册成功页面,以后就能用这个账号来登录了
/api/classinfo/
方式:POST
参数:
{
teacher_id: 教师ID,
product_id: 产品ID,
class_type: 班级类型,
start_date: "开课日期,格式:yyyy-MM-dd",
end_date: "结课日期,格式:yyyy-MM-dd",
start_time: "上课时间,格式:HH:mm",
end_time: "下课时间,格式:HH:mm",
remarks: "备注"
}
返回结果:
如成功,输出刚才录入的数据并包含主键id/api/classinfo/
方式:GET
参数:无
返回结果:
[{"id":2,"teacher_id":1,"product_id":1,"class_type":1,"start_date":"2025-10-21","end_date":"2025-10-28","start_time":"09:00:00","end_time":"18:00:00","remarks":"--","created_at":"2025-10-21T07:16:59.000000Z","updated_at":"2025-10-21T07:45:34.000000Z"},{"id":3,"teacher_id":3,"product_id":3,"class_type":3,"start_date":"2025-10-22","end_date":"2025-10-29","start_time":"10:00:00","end_time":"19:00:00","remarks":"---","created_at":"2025-10-21T08:08:27.000000Z","updated_at":"2025-10-21T08:08:27.000000Z"}]/api/classinfo/$id
方式:GET
参数:
$id:班级ID
返回结果:
{"id":2,"teacher_id":1,"product_id":1,"class_type":1,"start_date":"2025-10-21","end_date":"2025-10-28","start_time":"09:00:00","end_time":"18:00:00","remarks":"--","created_at":"2025-10-21T07:16:59.000000Z","updated_at":"2025-10-21T07:45:34.000000Z"}/api/classinfo/$id
方式:PUT
参数:
$id:待修改的班级ID
{
teacher_id: 教师ID,
product_id: 产品ID,
class_type: 班级类型,
start_date: "开课日期,格式:yyyy-MM-dd",
end_date: "结课日期,格式:yyyy-MM-dd",
start_time: "上课时间,格式:HH:mm",
end_time: "下课时间,格式:HH:mm",
remarks: "备注"
}
返回结果:
如成功,返回修改后的数据。/api/classinfo/$id 方式:DELETE 参数: $id:待删除的班级ID 返回结果: 无
跟以上不同的是,这些该接口会同时在班级表和对应的EC-Cube表内写入数据。
/api/productClass
方式:POST
参数:
{
"name": "课程名称",
"description_detail": "课程简介信息",
"price": 价格,
"currency_code": "货币符号,如:JPY(日元)",
"start_date": "开课日期,格式:yyyy-MM-dd",
"end_date": "结课日期,格式:yyyy-MM-dd",
"start_time": "上课时间,格式:HH:mm",
"end_time": "下课时间,格式:HH:mm",
"class_type": 班级类型,
"remarks": "备注"
}
返回结果:
如成功,返回生成的班级数据/api/productClass
方式:GET
参数:
keyword:搜索关键字
返回结果:
[{"id":5,"name":"初级课","description_detail":"课程简介","price":"1000.00","class_type":1,"start_date":"2025-10-22","end_date":"2025-10-29","start_time":"09:00:00","end_time":"18:00:00","remarks":"---"},{"id":6,"name":"中级课","description_detail":"课程简介","price":"3000.00","class_type":2,"start_date":"2025-10-22","end_date":"2025-10-29","start_time":"09:00:00","end_time":"18:00:00","remarks":"---"}]/api/productClass/$id
方式:GET
参数:
$id:班级ID
返回结果:
{"id":5,"name":"初级课","description_detail":"课程简介","price":"1000.00","class_type":1,"start_date":"2025-10-22","end_date":"2025-10-29","start_time":"09:00:00","end_time":"18:00:00","remarks":"---"}/api/productClass/$id
方式:PUT
参数:
$id:待修改的班级ID
{
"name": "课程名称",
"description_detail": "课程简介信息",
"price": 价格,
"currency_code": "货币符号,如:JPY(日元)",
"start_date": "开课日期,格式:yyyy-MM-dd",
"end_date": "结课日期,格式:yyyy-MM-dd",
"start_time": "上课时间,格式:HH:mm",
"end_time": "下课时间,格式:HH:mm",
"class_type": 班级类型,
"remarks": "备注"
}
返回结果:
如成功,返回修改后的班级数据。/ec-cube/login_user_info
方式:GET
参数:无
返回结果:
{"roles":["ROLE_USER"],"username":"ywances@gmail.com","id":1,"name01":"\u694a","name02":"\u7d93\u7db8","kana01":"\u30e4\u30f3","kana02":"\u30b8\u30f3\u30eb\u30f3","companyName":null,"postalCode":"140-0014","addr01":"\u54c1\u5ddd\u533a\u5927\u4e95","addr02":"\u30ce\u30fc\u30a6\u30a7\u30a2\u30b9\u30c8\u30ea\u30fc\u30c815","email":"ywances@gmail.com","phoneNumber":"15965647623","birth":null,"plainPassword":null,"password":"$2y$13$mrzoAb0FPkZ4CkDBhEOrRedsAbFDxtQnbRX.7xNuOR9nWuzGsHYeS","salt":null,"secretKey":"3QPjjXjlU9Da1wVrLpuOMhf0O8TRn1yx","firstBuyDate":null,"lastBuyDate":null,"buyTimes":"0","buyTotal":"0.00","note":null,"resetKey":null,"resetExpire":null,"createDate":"2025-10-31T12:37:04+09:00","updateDate":"2025-10-31T12:37:04+09:00","emailReceivedText":null,"topimage":null,"trialclass":null,"beginnerClass":null,"middleClass":null,"highClass1":null,"skypeid":null,"CustomerFavoriteProducts":[],"CustomerAddresses":[],"Orders":[],"Status":{"id":2,"name":"\u672c\u4f1a\u54e1","sortNo":1,"__initializer__":null,"__cloner__":null,"__isInitialized__":true},"Sex":{"id":1,"name":"\u7537\u6027","sortNo":0,"__initializer__":null,"__cloner__":null,"__isInitialized__":true},"Job":{"id":10,"name":"\u7814\u7a76\u30fb\u958b\u767a","sortNo":9,"__initializer__":null,"__cloner__":null,"__isInitialized__":true},"Country":{"id":392,"name":"\u65e5\u672c","sortNo":153,"__initializer__":null,"__cloner__":null,"__isInitialized__":true},"Pref":{"id":13,"name":"\u6771\u4eac\u90fd","sortNo":13,"__initializer__":null,"__cloner__":null,"__isInitialized__":true},"point":"0","userIdentifier":"ywances@gmail.com"}/ec-cube/%eccube_admin_route%/login_user_info
方式:GET
参数:无
返回结果:
{"roles":["ROLE_ADMIN"],"username":"Ywances","id":1,"name":"\u7ba1\u7406\u8005","department":"YNC\u306e\u5c0f\u3055\u306a\u304a\u5e97","loginId":"Ywances","password":"$2y$13$aDK2WXi4hlnalCrJSmU5reSQMpJOUBBJO9G1MJITc9YDQ3MCjH7Gm","salt":null,"sortNo":1,"twoFactorAuthKey":null,"twoFactorAuthEnabled":false,"createDate":"2025-10-24T19:52:09+09:00","updateDate":"2025-10-31T15:55:58+09:00","loginDate":"2025-10-31T15:55:58+09:00","skypeid":null,"emailReceivedText":null,"topimage":null,"point":null,"gakureki":null,"syokureki":null,"appeal":null,"trialclass":null,"beginnerClass":null,"middleClass":null,"highClass":null,"freeclass":null}