abstract:一、创建表的SQL语句-- Adminer 4.7.1 MySQL dumpSET NAMES utf8;SET time_zone = '+00:00';SET foreign_key_checks = 0;SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';DROP DATABASE IF EXISTS `shop`;CREATE DA
一、创建表的SQL语句
-- Adminer 4.7.1 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP DATABASE IF EXISTS `shop`;
CREATE DATABASE `shop` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `shop`;
DROP TABLE IF EXISTS `product`;
CREATE TABLE `product` (
`id` int(255) NOT NULL AUTO_INCREMENT COMMENT '图书id',
`name` varchar(255) NOT NULL COMMENT '图书名称',
`price` int(255) NOT NULL COMMENT '图书单价',
`company` varchar(255) NOT NULL COMMENT '出品该图书的公司名称',
`delete_time` int(12) NOT NULL COMMENT '删除图书信息时间戳',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `product` (`id`, `name`, `price`, `company`, `delete_time`) VALUES
(1, '纯牛奶', 83, '蒙牛', 1557586982),
(2, '清华大学', 85, '汇源', 0),
(3, '纸巾', 100, '恒安', 0),
(4, '铅笔', 82, '晨光', 0)
ON DUPLICATE KEY UPDATE `id` = VALUES(`id`), `name` = VALUES(`name`), `price` = VALUES(`price`), `company` = VALUES(`company`), `delete_time` = VALUES(`delete_time`);
-- 2019-05-11 15:22:05
二、程序代码
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Product as productModel;//设置模型类的别名
class Product extends Controller
{
//1.添加图书信息
public function instance(productModel $product)//依赖注入
{
// $product = new productModel();// 实例化模型
dump($product->getName());//查看模型名称
$product->id = 6;
$product->name = '《php从入门到精通》';
$product->price = 30;
$product->company = '清华大学出版社';
$product->save();
return '新增成功,id=' . $product->id;
}
//2.查询图书信息
public function query()
{
// 1.单条记录:get(主键/闭包)
// 闭包:就是一个匿名回调函数
// $product = productModel::get(2);
// dump($product);
//(1)用闭包来创建查询条件
// $product = productModel::get(function ($query) {
// $query->where('id', '>', 1)
// ->where('price', '>', 1)
// ->select();
// });
// dump($product);
// 直接调用Db静态类的查询构造器进行查询
// $product=productModel::where('price', '>', 1)
// ->select();
// (2)多条记录查询:all(主键列表/闭包)
// 返回值是多个数组
// $product=productModel::all(
// function($query) {
// $query->where('id', '>', 1)
// ->where('price', '>', 1);
// });
//// dump($product);
// foreach ($product as $value){
// echo '编号:'.$value->id.'<br>';
// echo '价格:'.$value->price.'<hr>';
// }
// (3)采用闭包来实现将请求变量注入到闭包条件中
$id = $this->request->param('id') ?: 1;
$price = $this->request->param('price') ?: 1;
$product = productModel::all(function ($query) use ($id, $price) {
$query->where('id', '>', $id)
->where('price', '>', $price);
});
dump($product);
}
//3.更新图书信息
public function update()
{
//基于查询的,不允许无条件更新
//$product=productModel::get(2);
//$product->name='北京大学';
//$product->save();
//静态方法:update();
productModel::update(['name' => '《考研660题》'], ['id' => 2]);
productModel::update(['price' => \think\Db::raw('price-5')],
function ($query) {
$query->where('price', '<', 15000);
});
// 也可以用查询构造器来更新数据
// productModel::where('price', '<', 100000)
// ->data(['price' => \think\Db::raw('price+50')])
// ->update();
}
//4.硬删除图书信息
public function delete()
{
// destroy(主键/主键列表/闭包)
productModel::destroy(6);
//删除条件使用闭包
productModel::destroy(function ($query) {
$query->where('id', '=', 6);
});
// 查询构造器实现删除
productModel::where('id', '=', 6)->delete();
}
//5.软删除图书信息:必须在模型中进行配置
public function softDelete()
{
// productModel::destroy(1);
// 软删除在平台查询中不可见
$res = productModel::withTrashed()->where('id = 1')->select();
dump($res);
}
}
Correcting teacher:查无此人Correction time:2019-05-13 09:45:01
Teacher's summary:完成的不错。后台cms管理的功能都是一样的逻辑。要好好练习,继续加油。