ThinkPHP-分层设计

配置数据库

在application/database.php文件中配置需要用的数据库

    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '',
    // 数据库名
    'database'        => '',
    // 用户名
    'username'        => '',
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '3306',

model分层

数据层:model 用于定义数据相关的自动验证和自动完成和数据存取接口
逻辑层:logic 用于定义相关的业务逻辑
服务层:service 用于定义相关的服务接口等

  • 在application目录下创建common目录,该目录放model,logic,和公共函数

pojo类

<?php
namespace app\common\pojo;

class Book
{
    public $id;
    public $name;
    public $price;
    
    public function __construct($id, $name, $price)
    {
        $this->id = $id;
        $this->name = $name;
        $this->price = $price;
    }
}

model类

<?php
/**
 * 数据层
 */

namespace app\common\model;


use think\Model;

class Book extends Model
{
    // 设置当前模型对应的完整数据表名称
    protected $table = 'phpbook';

    public function insertBook(\app\common\pojo\Book $book){
        $this->data([
            'id'=>$book->id,
            'name'=>$book->name,
            'price'=>$book->price
        ]);
        return $this->save();
    }
    public function selectAllBooks(){
        $books=[];
        $list = $this->field('id,name,price')->select();
        foreach ($list as $book){
            array_push($books,new \app\common\pojo\Book($book['id'],$book['name'],$book['price']));
        }
        return $books;
    }
    public function selectBookById($id){
        $book = $this->where("id",$id)->field('id,name,price')->find();
        return $book;
    }
    public function deleteBook(\app\common\pojo\Book $book){
        return $this->where('id','=',$book->id)->delete();
    }
    public function updateBook(\app\common\pojo\Book $book){
        return $this->save(['name'=>$book->name,'price'=>$book->price],['id'=>$book->id]);
    }
}

logic类

<?php
/**
 * 逻辑层
 */

namespace app\common\logic;

use think\Model;

class Book extends Model
{
    public function addBook(\app\common\pojo\Book $book){
        return model('Book','model')->insertBook($book);
    }
    public function findAllBooks(){
         return model('Book','model')->selectAllBooks();
    }
    public function findBooksById($id){
        return model('Book','model')->selectBookById($id);
    }
    public function updateBook(\app\common\pojo\Book $book){
        return model('Book','model')->updateBook($book);
    }
    public function deleteBook(\app\common\pojo\Book $book){
        return model('Book','model')->deleteBook($book);
    }
}

controller类

<?php
namespace app\index\controller;

use app\common\pojo\Book;
use think\Config;

class Index
{
    public function index()
    {
        Config::set("default_return_type","json");
        $books = model("Book","logic")->findAllBooks();
        return $books;
    }
    public function insert(){
        Config::set("default_return_type","json");
        return json(model("Book","logic")->addBook(new Book('20','万历十五年','12.11')));
    }
    public function update(){
        Config::set("default_return_type","json");
        return json(model("Book","logic")->updateBook(new Book('20','万历十五年','1001')));
    }
    public function delete(){
        Config::set("default_return_type","json");
        return json(model("Book","logic")->deleteBook(new Book('20',null,null)));
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容