一个使用laravel创建word的实例

这篇博客详细介绍了如何使用Laravel从头开始创建一个功能,用户上传JSON数据后,系统将数据格式化并生成Word文档。涉及内容包括创建项目、定义控制器、配置路由、设计视图、文件上传、数据保存到数据库以及使用Eloquent ORM操作数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个从零开始使用laravel例子.一个很简单的功能,在页面上上传指标值(json格式),然后点按纽会把指标按一定格式输出word.其中使用了laravel的一些基本的功能。

1)首先创建项目CreateWord

命令行输入:laravel new CreateWord

这时会自动创建一个目录CreateWord,在这个目录下已经生成了很多的文件,只需求修改相应的文件,就可以实现我们要的功能.

2)\app\Http\Controllers创建一个控制器类

 类名要用驼峰命名法PostsController,定义一个方法upload


控制器类都会继承Controller,所以需要extendsController

3)\routes\web.php中增加路由

Route::post('createDocs/upload', ' PostsController@upload');

http访问的method=post请求时,对应Route::post()方法, 这里PostsController是一个控制器类(上面定义的)upload是该控制器类的方法,整条语句的意思就是当访问/的时候,就会去执行PostsController类中的upload方法。”””

4)增加视图

操作页面很简单,如下图


\resources\views\createDocs增加视图createDoc.blade.phplaravel的视图页面是使用blade模版引擎的,所以必须加上.blade.php的后缀)


在上传数据之后,需要返回当前页面,所以update方法最后要返回“return view('createDocs.createDoc');

5)上传文件

首先把json文件保存在本地目录,再解析出内容,最后根据内容来输出word

文件系统的配置文件在 config/filesystems.php 文件中,此处我们新建一个uploads本地磁盘空间用于存储上传的文件


之后编写上传的代码


6)生成word

直接输出word的内容到浏览器

        ob_start(); //打开缓冲区

               echo $html;

               header("Cache-Control:public");

               Header("Content-type:application/octet-stream");

               Header("Accept-Ranges:bytes");

header('Content-Disposition:attachment; filename=test.doc');

header("Pragma:no-cache");

header("Expires:0");

ob_end_flush();//输出全部内容到浏览器

如果文件是中文名需要处理一下

7)解析的内容,会先保存在MySql数据库中

首先要创建数据库。Laravel自带的migrationmigration可以看成是数据库的版本控制,你无论是添加了表,还是修改了字段,你的同事只需要执行php artisan migrate就可以保证他的数据库和你一样了,这对于数据库的线上部署也非常的方便。

database/migrations目录创建表,一般每个表一个文件,主要实现updown方法。up()中的内容是创建表及其字段,而down()函数是删除表



然后命令行执行:php artisan migrate  在数据库创建了表ghub.sans.item.data

还可以使用php artisan db:seed  给数据表插入测试数据

8)查询和保存数据

这里用到了Laravel Eloquent ORM可以通过 make:model 命令自动生成Eloquent 模型:

php artisan make:model ItemDatas
然后进行改写

有了这个就很方便的操作数据表的数据了。比如从ghub_sans_items取出数据保存在ghub.sans.item.data这个表中


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值