//////////////////////资源路由

//商品资源路由恢复
Route::get('/restore/{id}','goodController@restore');

//商品资源路由添加,删除 ,展示
Route::resource('good','goodController');

/////////////////////////////////////////////资源路由控制器页面

<?php

namespace App\Http\Controllers;

use App\models\goodModel;
use App\models\goodModels;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;

class goodController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
//展示页面
//..搜索,接受搜索关键字
$word= $request->input('word');
//分页接口
//1.总条数
$count = DB::table('good_test')->count();
//2.设置首页当前页
$first_page = $request->input('page', 1);
//3.每页显示的条数
$num = 3;

//4.一共有几页,也可以求出最后一页
$last_page = ceil($count / $num);
//5.计算偏移量
$offset = ($first_page - 1) * $num;
$data = DB::table('good_test')
// ->where('good_name','like',"%$word%")这是分页的接口测试
->where('good_name','like',"%$word%")
->offset($offset)
->limit($num)
->get();
// var_dump($data);
if ($data) {
//返回接口三要素
$arr['staus']='200';
$arr['info']='分页(模糊查询)完成';
$arr['data']=$data;
//返回json对象
return response()->json($arr);
}

}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//添加页面
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//接受表单页面
$params = $request->all();
// var_dump($params);
//进行验证
$validata = Validator::make($params, [
'good_name' => 'required',
'good_price' => 'required',
'good_img' => 'required',

], [
'good_name.required' => '商品名称不可以为空',
'good_price.required' => '商品价格不可以为空',
'good_img.required' => '商品封面不可以为空',

]);
if ($validata->fails()) {
$errors = $validata->errors()->first();
//接口三要素
// echo $errors;
$arr['status'] = 500;
$arr['info'] = $errors;
$arr['data'] = $params;
//返回json对象
return response()->json($arr);
}
//进行图片的处理
$path = url('') . '/' . $request->good_img->store('good_imgs');
$params['good_img'] = $path;
//进行模型调用,添加入库
$res = goodModels::store($params);
if ($res) {
//返回接口三要素
$arr['status'] = 200;
$arr['info'] = '添加成功';
$arr['data'] = $params;
//返回方式为json对象
return response()->json($arr);

} else {
$arr['status'] = 404;
$arr['info'] = '添加失败';
$arr['data'] = $params;
//返回方式为json对象
return response()->json($arr);

}

}



/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//展示修改页面
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//编辑修改
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//修改页面
}

/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
$res=goodModels::del($id);
if ($res){
//返回三要素
$arr['status']=200;
$arr['info']='删除成功';
$arr['data']=$res;
//返回json对象
return response()->json($arr);
}else{
$arr['status']=500;
$arr['info']='删除失败';
$arr['data']=$res;
//返回json对象
return response()->json($arr);
}

}



//删除恢复
public function restore($id){
//调用恢复的模型
$res=goodModels::restore($id);
var_dump($res);
if ($res){
$arr['status']=200;
$arr['info']='恢复成功';
$arr['data']=$res;
//返回json对象
return response()->json($arr);

}else{
$arr['status']=500;
$arr['info']='恢复失败';
$arr['data']=$res;
//返回json对象
return response()->json($arr);

}

}
}


、、、、、、、、、、、、商品模型页面
<?php

namespace App\models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class goodModels extends Model
{
//
use SoftDeletes;
protected $table='good_test';
public $primaryKey='id';
public $timestamps=false;
public static function store($params){
$obj=new self();
$obj->good_name=$params['good_name'];
$obj->good_price=$params['good_price'];
$obj->good_img=$params['good_img'];
return $obj->save();
}

//删除
public static function del($id){
return self::find($id)->delete();
}
//删除恢复
public static function restore($id){
return self::withTrashed()
->find($id)
->restore();

}

}





专业5 laravel框架添加,删除,恢复,分页,搜索接口的更多相关文章

  1. laravel框架手动删除迁移文件后再次创建报错

    手动删除laravel框架数据表迁移文件后再次创建报错 如下图: 执行创建操作之后会在autoload_static.php及autoload_classmap.php这两个文件中添加迁移文件的目录. ...

  2. 每天一点点之laravel框架 - Laravel5.6 + Passport实现Api接口认证

    1.首先通过 Composer 包管理器安装 Passport: composer require laravel/passport 注:如果安装过程中提示需要更高版本的 Laravel:larave ...

  3. 关于laravel框架分页报错的问题

    因为laravel框架有自己的分页封装,所以与其他框架相比laravel框架的分页的实现要方便的多 只要分别在php脚本与视图中使用 $data=DB::table('index_pic')-> ...

  4. DHTMLX 前端框架 建立你的一个应用程序 教程(十一)--添加/删除表格中的记录

    添加/删除表格中的记录 我们的最终功能是在表格中添加删除 我们通过单机工具栏上的按钮来实现添加删除 当我们单击添加按钮的时候, 表单中 第一行默认填写New contact 光标自动聚焦 当用户点击删 ...

  5. 如何恢复,迁移,添加, 删除 Voting Disks

    如何恢复,迁移,添加, 删除 Voting Disks恢复流程 在11gR2 之前,我们可以直接直接使用dd命令对voting disk进行备份.DD示例 备份votedisk盘:[root@raw1 ...

  6. Laravel设置软删除及其恢复系列操作

    软删除及其相关实现 在模型类中要使用SoftDeletestrait并设置$date属性数组 <?php namespace App\Models; use Illuminate\Databas ...

  7. laravel框架入门

    本文摘自网络,个人感觉写的很不错,决定收藏一下纯属本人学习之用 本文介绍如何开始使用 Laravel. 读完本文,你将学到: 如何安装 Laravel,新建 Laravel 程序,如何连接数据库: L ...

  8. PHP程序Laravel框架的优化技巧

    Laravel是一套简洁.优雅的php Web开发框架(PHP Web Framework).它可以让你从杂乱的代码中解脱出来,可以帮你构建一个完美的网络app,而且每行代码都简洁.富于表达力.而性能 ...

  9. 基于laravel框架构建最小内容管理系统

    校园失物招领平台开发 --基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大.人群活动频繁.师生学习生活等物品容易遗失的基本现状,在分析传统失物招领过程中的工作效率低下. ...

随机推荐

  1. 浅谈C#可变参数params

    前言 前几天在群里看到群友写了一个基础框架,其中设计到关于同一个词语可以添加多个近义词的一个场景.当时群友的设计是类似字典的设计,直接添加k-v的操作,本人看到后思考了一下觉得使用c#中的params ...

  2. Win10正式版屏幕一直闪烁怎么办

    这个原因是由于两个账户都在线,一个账户更替到另一个账户时出现的 解决办法:先注销一个账户,再登录到另一个账户,即只保持一个账户在线,就不会出现屏幕闪烁的情况.

  3. Git标签 简单操作

    感谢廖雪峰老师,以下内容多数来自老师的Git教程. 另有部分参考Git中文文档. 创建 命令git tag <tagname> [commit id]用于新建一个标签,默认为HEAD; 也 ...

  4. JVM学习七-(复习)垃圾收集策略与算法

    垃圾收集策略与算法 程序计数器.虚拟机栈.本地方法栈随线程而生,也随线程而灭:栈帧随着方法的开始而入栈,随着方法的结束而出栈.这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的 ...

  5. 深入epoll

    转载请注明来源:https://www.cnblogs.com/hookjc/ 一. 介绍Epoll 是一种高效的管理socket的模型,相对于select和poll来说具有更高的效率和易用性.传统的 ...

  6. Springcloud-微服务

    1.什么是微服务? 通过阅读马丁弗勒关于描述微服务的文章(https://martinfowler.com/articles/microservices.html),在此特作仅用作个人理解的关于微服务 ...

  7. [翻译]Introduction to JSON Web Tokens

    JWT: Json Web Tokens JWT是一种开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于将各方之间的信息安全地传输为JSON对象.因为它是经过数字签名的,所以该信息可以进 ...

  8. uos系统离线状态下进入开发者模式

    需到处机器信息,接着登入指定的uos开发者网站,下载证书,然后在机器上加载证书,重启即可.

  9. k8s笔记--驱逐与重调度,以及deschueduler的一次实验

    在Kubernetes中,调度是指将Pod放置到合适的Node上,然后对应的Node上的Kubelet才能够运行这些pod.调度器通过Kubernetes的监测机制来发现集群中新创建且尚未被调度的No ...

  10. [LeetCode]26.删除有序数组中的重复项(Java)

    原题地址: remove-duplicates-from-sorted-array 题目描述: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的 ...