本章的主要目标是为了对商品品牌进行CRUD(增删改查)操作。
我们在写的时候就要了解业务逻辑,也就是了解表结构
每个字段代表什么含义,为什么是这个类型的
logo:保存的是图片,一般是分两个途径来保存的,
1.保存图片的本身,保存在目录之下
2.将图片的路径保存到数据表中
我们先创建一个名字为BrandController的控制器,和在view视图里面创建一个Brand的文件夹来进行存放模版文件,如下图所示:
然后将add里面的css和图片路径该下即可代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>SHOP 管理中心 - 品牌管理 </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="__ADMIN__/styles/general.css" rel="stylesheet" type="text/css" /> <link href="__ADMIN__/styles/main.css" rel="stylesheet" type="text/css" /> </head> <body> <h1> <span class="action-span"><a href="index.php?p=admin&c=brand&a=index">商品品牌</a></span> <span class="action-span1"><a href="index.php?act=main">SHOP 管理中心</a> </span><span id="search_id" class="action-span1"> - 添加品牌 </span> <div style="clear:both"></div> </h1> <div class="main-div"> <form method="post" action="" name="theForm" enctype="multipart/form-data" onsubmit="return validate()"> <table cellspacing="1" cellpadding="3" width="100%"> <tbody><tr> <td class="label">品牌名称</td> <td><input type="text" name="brand_name" maxlength="60" value=""><span class="require-field">*</span></td> </tr> <tr> <td class="label">品牌网址</td> <td><input type="text" name="url" maxlength="60" size="40" value=""></td> </tr> <tr> <td class="label"><a href="javascript:showNotice(‘warn_brandlogo‘);" title="点击此处查看提示信息"> <img src="__ADMIN__/images/notice.gif" width="16" height="16" border="0" alt="点击此处查看提示信息"></a>品牌LOGO</td> <td><input type="file" name="brand_logo" id="logo" size="45"> <br><span class="notice-span" style="display:block" id="warn_brandlogo"> 请上传图片,做为品牌的LOGO! </span> </td> </tr> <tr> <td class="label">品牌描述</td> <td><textarea name="brand_desc" cols="60" rows="4"></textarea></td> </tr> <tr> <td class="label">排序</td> <td><input type="text" name="sort_order" maxlength="40" size="15" value="50"></td> </tr> <tr> <td class="label">是否显示</td> <td><input type="radio" name="is_show" value="1" checked="checked"> 是 <input type="radio" name="is_show" value="0"> 否 (当品牌下还没有商品的时候,首页及分类页的品牌区将不会显示该品牌。) </td> </tr> <tr> <td colspan="2" align="center"><br> <input type="submit" class="button" value=" 确定 "> <input type="reset" class="button" value=" 重置 "> </td> </tr> </tbody></table> </form> </div> <div id="footer"> 版权所有 © 2014-2016 夺命雷公狗 - 技术总结 - </div> </div> </body> </html>
然后我们在BrandController.class.php里面进行修改配置add方法。
add方法是添加品牌的方法,提示,在刚才的表单中name属性,最好尽量和数据表字段的一样。
我们直接在浏览器上打开http://www.shop.com/index.php/Admin/brand/add 即可看到如下所示:
这里面有一个红色的*号,一般都是代表必须填写的,而且还有一个图片上传的地方,那么我们可以通过以下方法来进行解决。
先决解必填的这个。
品牌名称,一般都是唯一的,我们可以通过model层来让他进行判断,我们在model目录下创建一个BrandModel.class.php的文件。
验证可以通过手册进行查找----模型----自动验证---里面有详细的例子
BrandModel.class.php内容如下所示:
<?php namespace Admin\Model; use Think\Model; //品牌模型 class BrandModel extends Model{ //自动验证规则 protected $_validate = array( array(‘brand_name‘,‘require‘,‘品牌名称不能为空‘), array(‘brand_name‘,‘‘,‘该品牌已存在‘,0,‘unique‘,1), ); }
要使用自动验证,必须使用create方法代码如下所示
<?php namespace Admin\Controller; use Think\Controller; class BrandController extends CommonController{ //添加品牌 public function add(){ if(IS_POST){ //品牌入库 //收集表单数据 $data[‘brand_name‘] = I(‘brand_name‘); $data[‘url‘] = I(‘url‘); $data[‘brand_desc‘] = I(‘brand_desc‘); $data[‘sort_order‘] = I(‘sort_order‘); $data[‘is_show‘] = I(‘is_show‘); //调用模型完成入库 $brandModel = D(‘brand‘); //因为是调用Model层的所以要使用到D if($brandModel->create($data)){ //成功验证,创建数据成功 if($brandModel->add()){ //使用create方法之后,这里的add方法不能传参 $this -> success(‘添加品牌成功‘,U(‘index‘),1); }else{ //验证失败 $this -> error(‘添加品牌失败‘); } }else{ $this -> error($brandModel->getError()); } return; } //载入品牌添加页面 $this -> display(); } }
时间: 2024-12-09 07:03:59