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->patch('slides/{slide}/seq', [ SlideController::class, 'seq']);
  // 资源路由
  $api->resource('slides', SlideController::class);
  // 禁用启用
  $api->patch('slides/{slide}/status', [ SlideController::class, 'status']);

在这里插入图片描述


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::where('status', 1)
                ->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 轮播图禁用启用控制器方法

/**
     * 轮播图禁用启用
     */
    public function status(Slide $slide)
    {
        $slide->status = $slide->status == 1 ? 0 : 1;
        $slide->save();
        return $this->response->noContent();
    }

在这里插入图片描述


1.8 轮播图排序

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的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Laravel是一种流行的PHP框架,用于构建Web应用程序。RBAC(Role-Based Access Control)是一种在应用程序中管理用户权限的方法。在Laravel中,可以使用API代码来实现RBAC。 实现RBAC的第一步是定义角色和权限。在Laravel中,可以使用数据库表来存储角色和权限的信息。可以创建一个名为roles的表来存储角色信息,包括角色名称和可访问的路由。还可以创建一个名为permissions的表来存储权限信息,包括权限名称和对应的路由。 接下来,需要在Laravel中定义路由,用来处理权限的验证和角色的分配。可以创建一个名为'check.permission'的中间件,用于验证用户的权限。在这个中间件中,可以查询数据库,获取当前用户的角色和可访问的路由,然后进行权限验证。如果用户没有权限访问该路由,则返回相应的错误信息。 当用户登录后,可以为用户分配一个或多个角色。在Laravel中,可以使用Session来存储用户信息。可以创建一个名为'assign.role'的路由,用于接收用户角色的分配请求。在这个路由中,可以将用户ID和角色ID存储到数据库中,并将用户的角色信息存储到Session中。 最后,可以创建一个名为'check.role'的中间件,用于验证用户的角色。在这个中间件中,可以查询数据库,获取当前用户的角色信息,并与当前访问的路由所需的角色进行比较。如果用户不具备所需的角色,则返回相应的错误信息。 通过以上步骤,可以实现基于角色和权限的访问控制。在Laravel中使用RBAC API代码,可以有效地管理和控制用户的权限,确保应用程序的安全性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值