文章标签后台管理
1、创建标签模型和迁移
首先需要创建 Tag 模型类:
php artisan make:model --migration Tag
该命令会在 app 目录下创建模型文件 Tag.php,由于我们在 make:model 命令中使用了 --migration 选项,所以同时会创建 Tag 模型对应的数据表迁移。
在标签(Tag)和文章(Post)之间存在多对多的关联关系,因此还要按照下面的命令创建存放文章和标签对应关系的数据表迁移:
php artisan make:migration --create=post_tag_pivot create_post_tag_pivot
编辑标签迁移文件
在 database/migrations 目录下编辑新创建的标签迁移文件内容如下:
下面我们对上面迁移文件中新增的字段作简要说明:
page_image:标签图片
meta_description:标签介绍
layout:博客终归要使用布局
reverse_directions:在文章列表按时间升序排列博客文章(默认是降序)
编辑文章与标签对应关系迁移
编辑文章与标签对应关系表迁移文件内容如下:
运行迁移
登录到 Homestead 虚拟机在项目根目录下通过运行如下 Artisan 命令以生成这两个数据表:
php artisan migrate
创建控制器添加路由
运行
php artisan make:controller Admin\TagController
创建控制器文件
在routes/web.php文件中,将管理员路由改成以下内容:
实现标签列表
在TagController 中添加index方法,具体引入的类可以参照之前的Post。
在resources/views/admin/tag下创建index.blade.php视图文件(内容见文后地址)
控制器,模板创建成功。访问可以看到界面显示出来了,但是没有数据。因此需要填充一些数据。
根据之前的教程,填充数据的步骤:
创建生seeder,命令会在database\seeds目录下创建TagsTableSeeder.php文件,文件内容如下:
在database\factories下创建TagFactory.php文件,文件内容如下:
执行composer dump-autoload,保证新增的两个文件能够正常引入。执行命令 生成tag的假数据。
执行过程有可能会报错,因为tag的唯一性冲突,可以直接跳过,我们只是生成假数据方便展示而已。
重新访问可以看到列表中已经填充了很多数据。
创建标签
执行命令 创建一个表单数据字段创建Job,生成文件在app\Jobs\TagFormFields.php目录下。(内容见文后地址)
执行命令,在app\Http\Requests目录下创建TagCreateRequest.php (内容见文后地址)
对数据表单进行验证,格式化成数据库需要的数据。
在TagController中添加create,store方法。内容如下,注意添加TagCreateRequest,TagFormFields的引用
到这里标签创建的部分就结束了,访问可以看到以下内容
完善页面信息,点击保存,可以看到标签创建成功,并重定向到了标签列表页面。
标签编辑
执行命令,在app\Http\Requests目录下创建TagUpdateRequest.php,修改内容如下:
控制器添加edit,update方法
删除标签
在TagController下添加以下内容:
因为使用的是resouce路由,laravel的resouce路由只接受delete提交或者模拟delete提交,因此需要一个表单,添加的方式模拟delete请求。
以上就是Laravel5.6 博客 中文章标题的增删改查操作!
文章的代码下载地址
领取专属 10元无门槛券
私享最新 技术干货