摘要:第一步,是数据表的建立 product_pic第二步是建立ProductPicModel.php<?php namespace app\admin\model; use \think\Model; class ProductModel extends Model { protected&nbs
第一步,是数据表的建立 product_pic

第二步是建立ProductPicModel.php
<?php
namespace app\admin\model;
use \think\Model;
class ProductModel extends Model
{
protected $table = 'product';
protected $pk = 'id';
}
?>第三步是Controller中的ProductPic.php
这里解释一下为什么要用use app\admin\model\ProductModel; 这是因为在add()方法中要调用Product中的数据信息
$productpics=ProductModel::all();
<?php
namespace app\admin\controller;
use app\admin\controller\Common;
use app\admin\model\ProductModel;
use app\admin\model\ProductPicModel;
use think\facade\Request;
use think\facade\Session;
class ProductPic extends Common{
public function index(){
$ProductPic=new ProductPicModel();
$productpics=$ProductPic->order('id','desc')->paginate(6);
$this->assign('productpics',$productpics);
return $this->fetch();
}
public function add(){
$productpics=ProductModel::all();
$this->assign('productpics',$productpics);
return $this->fetch();
}
public function upload(){
$file=Request::file('file');
if($info=$file->validate(['ext'=>'jpeg,jpg,gif,png'])->move('upload')){
$fileName='/upload/'.$info->getSaveName();
return json([1,'上传成功!','data'=>$fileName]);
}else{
return $file->getError();
}
}
public function doAdd(){
$data=Request::param();
$data['time']=time();
$data['username']=Session::get('username');
$productPic=new ProductPicModel();
if($productPic->save($data)){
return ['res'=>1,'msg'=>'添加成功'];
}else{
return ['res'=>0,'msg'=>'添加失败'];
}
}
public function del(){
$productPicId=Request::param('id');
$productPic=new ProductPicModel();
if($productPic->destroy($productPicId)){
return ['res'=>1,'msg'=>'删除成功'];
}
}
}
?>在HTML相关页面中index.html
{volist name="productpics" id="productpic"}
<tr>
<td>{$productpic.id}</td>
<td>{:GetProTitle($productpic.product_id)}</td>
<td><img src="{$productpic.pic}"></td>
<td>{$productpic.username}</td>
<td>{$productpic.time|date="Y-m-d"}</td>
<td class="td-manage">
<a title="删除" onclick="member_del(this,'{$productpic.id}')" href="javascript:;">
<i class="layui-icon"></i>
</a>
</td>
</tr>
{/volist} function member_del(obj,id){
layer.confirm('确认要删除吗?',function(index){
//发异步删除数据
$.get('{:url(\'del\')}','id='+id,function (data) {
if (data.res==1){
$(obj).parents("tr").remove();
layer.msg('已删除!',{icon:1,time:1000});
}
})
});
}add.html
主要是$.post(url,value,function(data){})
$.post('{:url(\'doAdd\')}',{
'product_id':$('#product_id').val(),
'pic':$('#pic').val()
},function (data) {
if (data.res == 1){
layer.alert(data.msg, {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
});
}else{
layer.alert(data.msg, {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
});
}
})


批改老师:天蓬老师批改时间:2018-12-03 13:43:50
老师总结:整体还好,只是自定义函数的命名不规范,建议用连接线, 详情请参考官方开发手册