摘要:系统的控制器代码如下 <?php namespace app\admin\controller; use pig\core\Controller; use app\model\User; session_start(); class Index extends Controller { publ
系统的控制器代码如下
<?php
namespace app\admin\controller;
use pig\core\Controller;
use app\model\User;
session_start();
class Index extends Controller
{
public function __construct()
{
parent::__construct();
}
//测试访问路由就访问到这个方法
public function demo($name='真的是')
{
echo $name;
}
//演示模板引擎的使用
public function testView()
{
//变量
$site = 'www.php.cn';
//数组
$courses = ['php','java','python'];
//对象
$lecture = new \stdClass();//命名空间是根目录
$lecture->name = '灭绝师太';
$lecture->age = 24;
$lecture->course='前端开发';
//测试是否能解析变量
$this->assign('site',$site);//这是自己写的赋值和渲染模板在controller里面
$this->assign('courses',$courses);
$this->assign('lecture',$lecture);
//渲染模板,自己写的
$this->fetch(__DIR__.'/../view/index/testView.php');
}
//获取用户信息列表
public function index()
{
$rows = (new User())->select('user',['id','name','sex','age','phone','email','birthday'],[
//搜索功能,如果用户提交了搜索条件就根据条件搜索,否则显示全部
'name[~]'=>isset($_POST['name']) ? $_POST['name'] : null
//name[~]表示搜索字段的某一个字符就行
]);
//调用plates模板引擎进行模板赋值和模板渲染 $this->view调用模板
//render()的第二个参数就是我们所要传递的数据
return $this->view->render('admin::index/index',[
'rows'=>$rows,
'title'=>'生日信息表',
'loginUrl'=>'admin/Index/login',//登录
'logoutUrl'=>'admin/Index/logout',//退出登录
'indexUrl'=>'/frame_project/',//返回首页
'insUrl'=>'admin/Index/insert',//添加操作
'editUrl'=>'admin/Index/edit',//编辑操作
'delUrl'=>'admin/Index/delete',//删除操作
]);//admin是一个路径,在controller里面设置了这里调用需要加::
}
//管理员登录
public function login()
{
if($_SERVER['REQUEST_METHOD']=='POST'){//判断是否是post提交的数据
//验证用户
$user=$_POST['name'];
$pass=$_POST['password'];
$res = (new User())->get('admin',['name','email','password'],[ 'AND'=>['name'=>$user, 'password'=>$pass,]]);
if($res==null){
echo "<script>alert('姓名或密码不正确');location.href='/frame_project/';</script>";
}else{
$_SESSION['name']=$res['name'];//将姓名保存到session,方便下次打开页面是做判断
echo "<script>alert('登录成功');location.href='/frame_project/';</script>";
}
}
}
//退出登录
public function logout()
{
session_destroy();//销毁session
echo "<script>alert('退出成功');location.href='/frame_project/';</script>";
}
//添加数据分两步:1.渲染出一个添加表单,2.将数据写入表中
public function insert()
{
return $this->view->render('admin::index/insert',[
'title'=>'添加记录',
'url'=>'/frame_project/admin/Index/add',
]);
}
//添加操作
public function add()
{
if($_SERVER['REQUEST_METHOD']=='POST'){
//执行添加操作
(new User())->insert('user',[
'name'=>$_POST['name'],
'sex'=>$_POST['sex'],
'age'=>$_POST['age'],
'phone'=>$_POST['phone'],
'email'=>$_POST['email'],
'birthday'=>$_POST['birthday'],
]);
echo "<script>alert('添加成功');location.href='/frame_project/';</script>";
}
}
//编辑操作
public function edit($id='')
{
$row = (new User())->get('user',['id','name','sex','age','phone','email','birthday'],[ 'AND'=>['id'=>$id]]);
return $this->view->render('admin::index/edit',[
'title'=>'编辑用户',
'url'=>'/frame_project/admin/Index/save',
'row'=>$row,
]);
}
//执行更新操作
public function save($id)
{
if($_SERVER['REQUEST_METHOD']=='POST'){
//执行添加操作
(new User())->update('user',[
'name'=>$_POST['name'],
'sex'=>$_POST['sex'],
'age'=>$_POST['age'],
'phone'=>$_POST['phone'],
'email'=>$_POST['email'],
'birthday'=>$_POST['birthday'],
],['id'=>$id]);
echo "<script>alert('更新成功');location.href='/frame_project/';</script>";
}
}
//执行删除操作
public function delete($id)
{
(new User())->delete('user',['id'=>$id]);
echo "<script>alert('删除成功');location.href='/frame_project/';</script>";
}
}页面展示:

批改老师:韦小宝批改时间:2019-03-13 09:13:02
老师总结:写的还是很不错 自己写框架是为了可以更好的去理解其他框架的东西原理