夺命雷公狗ThinkPHP项目之----商城5快速入门

本章是快速入门篇,有基础可直接跳过:

1.创建一个数据库名叫shopp的,然后穿件一张表

#创建用户表
create table user(
    id int unsigned not null auto_increment primary key comment ‘用户编号‘,
    username varchar(50) not null default ‘‘ comment ‘用户名‘,
    email varchar(50) not null default ‘‘ comment ‘电子邮箱‘,
    password char(32) not null default ‘‘ comment ‘用户密码,md5加密‘,
    reg_time int unsigned not null default 0 comment ‘用户注册时间‘
)engine=MyISAM charset=utf8;

2.定义配置文件

配置路径在:tp---Application---Common---Conf---config.php里面进行配置

我们可以在手册上上直接找到数据库配置的参数,

打开tp的手册,在附录下的--配置参考---数据库设置

<?php
return array(
    //‘配置项‘=>‘配置值‘
        //数据库配置
        ‘DB_TYPE‘               =>  ‘mysql‘,     // 数据库类型
        ‘DB_HOST‘               =>  ‘localhost‘, // 服务器地址,因为数据库是在本地的所以写localhost
        ‘DB_NAME‘               =>  ‘shopp‘,          // 数据库名
        ‘DB_USER‘               =>  ‘root‘,      // 用户名
        ‘DB_PWD‘                =>  ‘‘,          // 密码因为的我密码是空,所以不写
        ‘DB_PORT‘               =>  ‘3306‘,        // 端口       ‘DB_PREFIX‘             =>  ‘‘,    // 数据库表前缀如果么有建议不用谢这段,经测试报错

);

在项目中数据库配置文件一般都是值写一遍,很少回去更改的

3.编写控制器

如果步知道控制器如何编写,可以借鉴他里面自带的那个进行修改,

创建一个名字叫UserController.class.php的控制器

<?php
    //用户控制器
    namespace Home\Controller;
    use Think\Controller;
    class UserController extends Controller {
        public function add(){
            if(IS_POST){
                //表单提交
                return;
            }
            //载入表单
            $this->display();
        }
    }

4.准备视图文件

在view里面创建一个名为User的文件夹(一个控制器对应一个文件夹)然后在里面创建一个叫add.html的文件进行存放模版信息

add.html代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="" method="post">
            <ul>
                <li><label>USER:<input type="text" name="username"></label></li>
                <li><label>PASS:<input type="password" name="password"></label></li>
                <li><label>邮箱:<input type="text" name="email"></label></li>
                <li><label><input type="submit" vaule="添加"></label></li>
            </ul>
        </form>
    </body>
</html>

然后访问http://localhost/shopp/index.php/home/User/add即可看到刚才所创建的页面了

对Controller控制器进行完善

<?php
    //用户控制器
    namespace Home\Controller;
    use Think\Controller;
    class UserController extends Controller {
        public function add(){
            if(IS_POST){
                //表单提交
                $data[‘username‘] = I(‘username‘);
                $data[‘password‘] = I(‘password‘);
                $data[‘email‘] = I(‘email‘);
                $data[‘reg_time‘] = time();//获取当前的时间戳

                //使用模型弯沉插入操作
                $mod = M(‘user‘);
                if($mod->add($data)){
                    $this->success(‘添加用户成功‘,U(‘User/index‘));
                }else{
                    $this ->error(‘添加用户失败‘);
                }
                return;
            }
            //载入表单
            $this->display();
        }
    }

最后返回到add页面进行添加数据,然后在数据库里即可查看到。

我们下一步可以一继续在控制器下写index方法了

<?php
    //用户控制器
    namespace Home\Controller;
    use Think\Controller;
    class UserController extends Controller {
        public function index(){
            //从数据库中取出数据
            $user = M(‘User‘) -> select();
            //dump($user);die;
            //分配数据到模版
            $this->assign(‘user‘,$user);
            $this->display();
        }
        public function add(){
            if(IS_POST){
                //表单提交
                $data[‘username‘] = I(‘username‘);
                $data[‘password‘] = I(‘password‘);
                $data[‘email‘] = I(‘email‘);
                $data[‘reg_time‘] = time();//获取当前的时间戳

                //使用模型弯沉插入操作
                $mod = M(‘user‘);
                if($mod->add($data)){
                    $this->success(‘添加用户成功‘,U(‘User/index‘));
                }else{
                    $this ->error(‘添加用户失败‘);
                }
                return;
            }
            //载入表单
            $this->display();
        }
    }

这里完成了上面的了,那么下一步就是完成用户列表页了在Application\Home\View\User下创建一个index.html的文件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>用户列表</title>
    </head>
    <body>
        <table border="1" width="500">
            <tr>
                <th>编号</th>
                <th>用户名</th>
                <th>邮箱</th>
                <th>操作</th>
            </tr>
            <volist name="user" id="vo">
                <tr>
                    <td>{$vo[‘id‘]}</td>
                    <td>{$vo.username}</td>
                    <td>{$vo.email}</td>
                    <td><a href="">编辑</a>|<a href="">删除</a></td>
                </tr>
            </volist>
        </table>
    </body>
</html>

下一步我们就开始定义编辑和删除的入口

<td><a href="__CONTROLLER__/edit/id/{$vo[‘id‘]}">编辑</a>  |  <a href="__CONTROLLER__/del/id/{$vo[‘id‘]}">删除</a></td>

入口编辑完成那么我们就开始写编辑和删除的功能了。

那么下一步就是在控制器UserController里面写个edit的方法了,代码如下:

        public function edit(){
            $id = I(‘id‘); //获取id
            if(IS_POST){
                //更新操作
                $data[‘username‘] = I(‘username‘);
                $data[‘password‘] = I(‘password‘);
                $data[‘email‘] = I(‘email‘);
                $data[‘reg_time‘] = time();//获取当前的时间戳
                $data[‘id‘] = $id;
                //使用模型弯沉插入操作
                $mod = M(‘user‘);
                if($mod->save($data)){
                    $this -> success(‘修改用户成功‘,U(‘User/index‘));
                }else{
                    $this -> error(‘修改用户失败‘);
                }
                return;
            }
            //载入编辑页面
            $user = M(‘user‘) -> find($id);
            $this->assign(‘user‘,$user);
            $this-> display();
        }

下一步在Application\Home\View\User下创建一个edit.html的文件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="" method="post">
            <ul>
                <li><label>USER:<input type="text" name="username" value="{$user.username}"></label></li>
                <li><label>PASS:<input type="password" name="password" value="{$user.password}"></label></li>
                <li><label>邮箱:<input type="text" name="email" value="{$user.email}"></label></li>
                <li><label><input type="submit" vaule="修改"></label></li>
                <input type="hidden" name="id" value="{$user.id}">
            </ul>
        </form>
    </body>
</html>

这个完成了最后一步就是删除了,这个其实是最容易的,

在UserController里面写多个叫del的方法,如下代码所示:

<?php
    //用户控制器
    namespace Home\Controller;
    use Think\Controller;
    class UserController extends Controller {
        public function index(){
            //从数据库中取出数据
            $user = M(‘User‘) -> select();
            //dump($user);die;
            //分配数据到模版
            $this->assign(‘user‘,$user);
            $this->display();
        }
        public function add(){
            if(IS_POST){
                //表单提交
                $data[‘username‘] = I(‘username‘);
                $data[‘password‘] = I(‘password‘);
                $data[‘email‘] = I(‘email‘);
                $data[‘reg_time‘] = time();//获取当前的时间戳

                //使用模型弯沉插入操作
                $mod = M(‘user‘);
                if($mod->add($data)){
                    $this->success(‘添加用户成功‘,U(‘User/index‘));
                }else{
                    $this ->error(‘添加用户失败‘);
                }
                return;
            }
            //载入表单
            $this->display();
        }

        public function edit(){
            $id = I(‘id‘); //获取id
            if(IS_POST){
                //更新操作
                $data[‘username‘] = I(‘username‘);
                $data[‘password‘] = I(‘password‘);
                $data[‘email‘] = I(‘email‘);
                $data[‘reg_time‘] = time();//获取当前的时间戳
                $data[‘id‘] = $id;
                //使用模型弯沉插入操作
                $mod = M(‘user‘);
                if($mod->save($data)){
                    $this -> success(‘修改用户成功‘,U(‘User/index‘));
                }else{
                    $this -> error(‘修改用户失败‘);
                }
                return;
            }
            //载入编辑页面
            $user = M(‘user‘) -> find($id);
            $this->assign(‘user‘,$user);
            $this-> display();
        }

        public function del(){
            $id = I(‘id‘);
            if(M(‘user‘) -> delete($id)){
                $this -> success(‘删除用户成功‘,U(‘User/index‘));
            }else{
                $this -> error(‘删除用户失败‘);
            }
        }
    }

即可完成删除功能

时间: 2024-10-06 05:45:48

夺命雷公狗ThinkPHP项目之----商城5快速入门的相关文章

夺命雷公狗ThinkPHP项目之----商城8商品品牌管理

本章的主要目标是为了对商品品牌进行CRUD(增删改查)操作. 我们在写的时候就要了解业务逻辑,也就是了解表结构 每个字段代表什么含义,为什么是这个类型的 logo:保存的是图片,一般是分两个途径来保存的, 1.保存图片的本身,保存在目录之下 2.将图片的路径保存到数据表中 我们先创建一个名字为BrandController的控制器,和在view视图里面创建一个Brand的文件夹来进行存放模版文件,如下图所示: 然后将add里面的css和图片路径该下即可代码如下: <!DOCTYPE html P

夺命雷公狗ThinkPHP项目之----商城10商品属性管理

我们一般做项目前就要分析业务逻辑先,这次也不例外. attr_type:是指属性的类型,有唯一,单选和多选之分 唯一属性,是指用户在购买商品时,可以看到的扩展属性如下图所示: 单选属性,是指用户在购买的时候,不需要选择的扩展属性,否则就无法购买,如下所示: 多选和单选是对应的,但是可以选择多个,但是单选的只能选择一个,否则就无法购买. attr_input_type:是指属性的输入方式,有文本框,下拉列表和文本域之分,如下图所示: attr_value:是指如果属性是下拉形式的,应该提供可选值.

夺命雷公狗ThinkPHP项目之----商城6后台首页

废话步多说,我们开工, 首先我们将thinkphp文件都解压到环境目录下的shop文件夹下 然后将里面多余的东西都干掉,留下public文件夹和thinkphp文件夹,即可,别的东西干掉, 然后我们新建一个名字叫index.php的文件,里面的配置文件可以按以下方法进行自定义: <?php // 定义项目目录 define("APP_PATH",'./Shop/'); // 开启调试 define("APP_DEBUG",true); // 引入ThinkPH

夺命雷公狗ThinkPHP项目之----商城2数据库设计

重要难度:五星 难度:无形 数据库的设计,就是体现了你对业务逻辑的了解 数据库设计的好坏,有时候决定了项目的成败 要点: 表与表之间的关系(一对一,一对多,多对多) 每一个字段的数据类型(数值,字符串,日期时间)没有布尔类型,使用tinyint来代替,1是真,0是假 设计数据库,以商品为例 找到核心(中心),然后一步步的展开 核心->商品 先来初步设计一下商品表的字段: 名称.价格.图片.颜色.上架时间.各种规格参数.详细描述,库存,品牌.分类. 品牌和商品是两个不同的东西,设计表的一个理念:一

夺命雷公狗ThinkPHP项目之----商城3编程思想

在实际的开发总,往往都是思想决定了高度. oop思想 OOP:Object Oriented Programming,面向对象程序设计,面向对象编程 OOP的三大特征 封装:通过类实现的,将内部实现细节隐藏起来,给外部提供一个接口进行调用 继承:通过extends来实现的,子类可以继承父类的属性和方法(Protected和public) 多态:php本身就是多态的,php是弱类型语言,在php中一般比较少提到多态的概念 OOP的好处 可维护性好 可扩展性好 可重用性高 灵活度高 MVC模式 M:

夺命雷公狗ThinkPHP项目之----企业网站1之快速搭建后台

我们还是老规矩照老方法,将框架里面多余的东西都干掉,然后在index.php里面将框架搭建起来 <?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调试 define('APP_DEBUG',True); //包含thinkphp项目入口文件 require "Thinkphp/Thinkphp.php"; 然后进入WEB目录下,并复制一个Home然后改名为Admin 然后再Index控制器下进行操作 代码如下所示: <?php

夺命雷公狗ThinkPHP项目之----企业网站2之数据库的快速设计

我们在一个项目的时候,花费最多事件的估计还是数据库的时间了,我们的数据库暂时就这样设计好了: 暂时我们的数据库就这样设计好了用下先,建好后如下所示:

夺命雷公狗ThinkPHP项目之----企业网站28之网站前台左侧导航的实现

我们基于刚才在model层的找顶级分类的代码在进行修改即可: <?php namespace Home\Controller; use Think\Controller; class CommonController extends Controller { function __construct(){ //继承父类的构造方法,所以网站在执行的时候会先执行他 parent::__construct(); //头部二级分类的显示 开始 $mod = M("Category");

夺命雷公狗ThinkPHP项目之----企业网站8之栏目的添加完善(无限极分类的完成)

我们刚才只是完成了添加的一部分,但是我们的上级分类也不能永远都是只有一个死的嘛,所以我们需要对她进行修改: 我们先将add方法里面的数据查出来再说: 然后在模板页进行遍历: 展示效果如下所示: 虽然是出现了,但是没有向我们平常时候见到的无限极分类一样噢,一般比如分类 多多,分类下面的 好多美女啊 是多多的下级分类,那么好多美女啊他前面是有几个空格之类的隔开, 那么我们就需要在model层里面对她进行排序的设置了: <?php namespace Admin\Model; use Think\Mo