专业5 laravel框架添加,删除,恢复,分页,搜索接口
//////////////////////资源路由
//商品资源路由恢复
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框架添加,删除,恢复,分页,搜索接口的更多相关文章
- laravel框架手动删除迁移文件后再次创建报错
手动删除laravel框架数据表迁移文件后再次创建报错 如下图: 执行创建操作之后会在autoload_static.php及autoload_classmap.php这两个文件中添加迁移文件的目录. ...
- 每天一点点之laravel框架 - Laravel5.6 + Passport实现Api接口认证
1.首先通过 Composer 包管理器安装 Passport: composer require laravel/passport 注:如果安装过程中提示需要更高版本的 Laravel:larave ...
- 关于laravel框架分页报错的问题
因为laravel框架有自己的分页封装,所以与其他框架相比laravel框架的分页的实现要方便的多 只要分别在php脚本与视图中使用 $data=DB::table('index_pic')-> ...
- DHTMLX 前端框架 建立你的一个应用程序 教程(十一)--添加/删除表格中的记录
添加/删除表格中的记录 我们的最终功能是在表格中添加删除 我们通过单机工具栏上的按钮来实现添加删除 当我们单击添加按钮的时候, 表单中 第一行默认填写New contact 光标自动聚焦 当用户点击删 ...
- 如何恢复,迁移,添加, 删除 Voting Disks
如何恢复,迁移,添加, 删除 Voting Disks恢复流程 在11gR2 之前,我们可以直接直接使用dd命令对voting disk进行备份.DD示例 备份votedisk盘:[root@raw1 ...
- Laravel设置软删除及其恢复系列操作
软删除及其相关实现 在模型类中要使用SoftDeletestrait并设置$date属性数组 <?php namespace App\Models; use Illuminate\Databas ...
- laravel框架入门
本文摘自网络,个人感觉写的很不错,决定收藏一下纯属本人学习之用 本文介绍如何开始使用 Laravel. 读完本文,你将学到: 如何安装 Laravel,新建 Laravel 程序,如何连接数据库: L ...
- PHP程序Laravel框架的优化技巧
Laravel是一套简洁.优雅的php Web开发框架(PHP Web Framework).它可以让你从杂乱的代码中解脱出来,可以帮你构建一个完美的网络app,而且每行代码都简洁.富于表达力.而性能 ...
- 基于laravel框架构建最小内容管理系统
校园失物招领平台开发 --基于laravel框架构建最小内容管理系统 摘要 针对目前大学校园人口密度大.人群活动频繁.师生学习生活等物品容易遗失的基本现状,在分析传统失物招领过程中的工作效率低下. ...
随机推荐
- 安装JDK,以及配置环境变量
卸载JDK 删除Java的安装目录 删除JAVA_HOME 删除path下关于Java的目录 Java-version 安装JDK 使用浏览器搜索JDK,找到下载地址 同意协议 下载电脑对应的版本 双 ...
- JAVA异常与异常处理详解【转】
感谢!!!原文地址:https://www.cnblogs.com/knightsu/p/7114914.html 一.异常简介 什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错.在ja ...
- JAVA多线程学习十一-线程锁技术
前面我们讲到了synchronized:那么这节就来将lock的功效. 一.locks相关类 锁相关的类都在包java.util.concurrent.locks下,有以下类和接口: |---Abst ...
- JAVA多线程学习六-守护线程
java中的守护程序线程是一个服务提供程序线程,它为用户线程提供服务. 它的生命依赖于用户线程,即当所有用户线程都死掉时,JVM会自动终止该线程. 有许多java守护程序线程自动运行,例如 gc,fi ...
- JAVA变量的数据类型
1. 整型 byte 代表一个字节的大小 8bit 2(8) -128~127 256 short 代表两个字节的大小 16bit 2(16) -2(15)~2(1 ...
- Linux下Mysql报错
报错内容为:[mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/ ...
- python日志装饰器实现
问题出自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143184355 ...
- Mac版play框架配置
打开终端 输入 cd - 再输入 touch .bash_profile 然后打开 open .bash_profile .bash_profile就是mac的配置文件 export PATH= ...
- python——rsa加签名以及分段加密
借鉴 https://www.cnblogs.com/sammy1989/p/9583965.html 最近请求一个系统,对方要求加密.折腾了一天,使用pycryptodome库,最终代码如下: #! ...
- LPL Ban/Pick 选人阶段的遮罩效果是如何实现的?
最近 S11 LPL 春季赛开赛,在看比赛的过程中,我发现新赛季的 Ban/Pick 选人阶段,出现了一种新的,有意思的遮罩效果,如下图所示: 当然,它是一个动态的效果,当选人的过程中,会有一种呼吸的 ...