IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> laravel轮播图管理api -> 正文阅读

[PHP知识库]laravel轮播图管理api

一、轮播图管理

1.1 创建模型、控制器、路由、表单验证

1、创建轮播图模型和迁移文件
运行命令php artisan make:model Slide -m
在这里插入图片描述


2、创建轮播图字段

Schema::create('slides', function (Blueprint $table) {
            $table->id();
            $table->string('title')->comment('轮播图名称');
            $table->string('url')->nullable()->comment('轮播图跳转链接');
            $table->string('img')->comment('轮播图图片');
            $table->string('status')->default(0)->comment('状态:0禁用,1正常');
            $table->integer('seq')->default(1)->comment('排序');
            $table->timestamps();
        });

在这里插入图片描述
运行命令php artisan migrate执行迁移生成表:
在这里插入图片描述


3、创建轮播图控制器
运行命令php artisan make:controller Admin/SlideController --api创建轮播图资源路由:
在这里插入图片描述


4、创建轮播图路由

  /**
    * 轮播图资源路由管理
    */
 $api->resource('slides', SlideController::class);

在这里插入图片描述


5、创建轮播图表单验证
运行命令php artisan make:request Admin/SlideRequest创建轮播图表单验证:
在这里插入图片描述
写入验证规则:

<?php

namespace App\Http\Requests\Admin;

use App\Http\Requests\BaseRequest;

class SlideRequest extends BaseRequest
{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'title' => 'required',
            'img' => 'required',
        ];
    }

    public function messages() {
        return [
            'title.required' => '标题必填',
            'img.required' => '图片地址必填',
        ];
    }
}

1.2 添加轮播图控制器方法

给轮播图模型增加可赋值的字段:

    protected $fillable = ['title', 'url', 'img', 'status', 'seq'];

在这里插入图片描述


添加轮播图控制器方法:

    /**
     * 添加轮播图
     */
    public function store(SlideRequest $request)
    {
        // 查询最大的seq
        $max_seq = Slide::max('seq') ?? 0;
        $max_seq++;
        
        $request->offsetSet('seq', $max_seq);

        $slide = Slide::create($request->all());

        return $this->response->created();
    }

在这里插入图片描述


测试:
在这里插入图片描述
在这里插入图片描述


1.3 轮播图列表控制器方法

创建轮播图SlideTransformer.php写入如下代码:

<?php 

namespace App\Transformers;

use App\Models\Slide;
use League\Fractal\TransformerAbstract;

class SlideTransformer extends TransformerAbstract {
    public function transform(Slide $slide) {
        return [
            'id' => $slide->id,
            'title' => $slide->title,
            'url' => $slide->url,
            'img' => $slide->img,
            'img_url' => oss_url($slide->img),
            'seq' => $slide->seq,
            'status' => $slide->status,
            'created_at' => $slide->created_at,
            'updated_at' => $slide->updated_at,
        ];
    }
}

轮播图控制器列表方法:

    /**
     * 轮播图列表
     */
    public function index()
    {
        $slides = Slide::paginate(1);
        return $this->response->paginator($slides, new SlideTransformer());
    }

在这里插入图片描述


1.4 轮播图详情控制器方法

    /**
     * 轮播图详情
     */
    public function show(Slide $slide)
    {
        return $this->response->item($slide, new SlideTransformer());
    }

在这里插入图片描述


测试效果:
在这里插入图片描述

1.5 轮播图更新控制器方法

    /**
     * 轮播图更新
     */
    public function update(SlideRequest $request, Slide $slide)
    {
        $slide->update($request->all());
        return $this->response->noContent();
    }

在这里插入图片描述


测试:
在这里插入图片描述
在这里插入图片描述


1.6 轮播图删除控制器方法

    /**
     * 轮播图删除
     */
    public function destroy(Slide $slide)
    {
        $slide->delete();
        return $this->response->noContent();
    }

在这里插入图片描述


测试效果:
在这里插入图片描述
在这里插入图片描述


1.7 轮播图排序

1、排序路由

 //排序
 $api->patch('slides/{slide}/seq', [ SlideController::class, 'seq']);

在这里插入图片描述

2、排序控制器方法

    /**
     * 轮播图排序
     */
    public function seq(Request $request, Slide $slide)
    {
        $slide->seq = $request->input('seq', 1);
        $slide->save();
        return $this->response->noContent();
    }

在这里插入图片描述

3、测试效果
在这里插入图片描述
在这里插入图片描述
可以看到已经更新了。

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 11:38:35  更:2021-08-27 11:39:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:57:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码