ThinkPHP 模型(Model)技术点详解

2024-12-18 0 859

ThinkPHP 模型Model)技术点详解

引言

ThinkPHP 是一个快速、兼容且简单的轻量级 PHP 框架,广泛用于各种 Web 开发项目。模型(Model)是 MVC(Model-View-Controller)架构中的重要组成部分,用于处理数据和业务逻辑。本文将详细讲解 ThinkPHP 中的模型技术点,并通过一个案例进行演示。

模型定义

在 ThinkPHP 中,模型类通常继承自框架提供的基类 `thinkModel`。模型类用于定义数据表的结构、验证规则、自动完成等功能。

示例:定义用户模型

<?php
namespace appmodel;

use thinkModel;

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

    // 自动写入时间戳字段
    protected $autoWriteTimestamp = true;

    // 定义自动完成的属性
    protected $auto = ['status' => 1];

    // 验证规则
    protected $rule = [
        'name'  => 'require|max:25',
        'email' => 'require|email',
    ];
}
        

模型查询

ThinkPHP 提供了丰富的查询方法,使得数据查询变得简单和直观。以下是一些常用的查询方法:

示例:查询用户数据

// 查询所有用户
$users = User::select();

// 根据主键查询用户
$user = User::get(1);

// 条件查询
$user = User::where('email', 'test@example.com')->find();

// 链式查询
$user = User::where('status', 1)->where('name', 'like', '%John%')->select();
        

模型操作

模型操作主要包括数据的增删改查,ThinkPHP 提供了简洁的方法来实现这些操作。

示例:添加、更新和删除用户

// 添加用户
$user = new User();
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();

// 更新用户
$user = User::get(1);
$user->email = 'john_new@example.com';
$user->save();

// 删除用户
User::destroy(1); // 根据主键删除
User::where('status', 0)->delete(); // 条件删除
        

案例讲解:用户管理系统

下面是一个简单的用户管理系统的案例,展示了如何使用模型进行用户数据的增删改查。

示例:用户控制器

<?php
namespace appcontroller;

use appBaseController;
use appmodelUser;

class UserController extends BaseController
{
    public function index()
    {
        $users = User::select();
        return view('user/index', ['users' => $users]);
    }

    public function create()
    {
        return view('user/create');
    }

    public function store()
    {
        $data = request()->post();
        $user = User::create($data);
        return redirect('user/index');
    }

    public function show($id)
    {
        $user = User::get($id);
        return view('user/show', ['user' => $user]);
    }

    public function edit($id)
    {
        $user = User::get($id);
        return view('user/edit', ['user' => $user]);
    }

    public function update($id)
    {
        $data = request()->put();
        User::update($data, ['id' => $id]);
        return redirect('user/index');
    }

    public function destroy($id)
    {
        User::destroy($id);
        return redirect('user/index');
    }
}
        

示例:视图文件


<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        {volist name="users" id="user"}
        <tr>
            <td>{$user.id}</td>
            <td>{$user.name}</td>
            <td>{$user.email}</td>
            <td>
                <a href="{:url('user/edit', ['id' => $user.id])}" rel="external nofollow" >Edit</a>
                <a href="{:url('user/destroy', ['id' => $user.id])}" rel="external nofollow" >Delete</a>
            </td>
        </tr>
        {/volist}
    </tbody>
</table>
<a href="{:url('user/create')}" rel="external nofollow" >Create New User</a>
        
ThinkPHP
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本站尊重知识产权,如知识产权权利人认为平台内容涉嫌侵犯到您的权益,可通过邮件:8990553@qq.com,我们将及时删除文章
本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除

腾谷资源站 thinkphp ThinkPHP 模型(Model)技术点详解 https://www.tenguzhan.com/4899.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务