ThinkPHP(十四)学生管理-编辑页面、更新/验证数据、删除数据、

1.C层:编辑页面、更新数据、删除数据

<?php
namespace app\index\controller;
use app\common\model\Student;
use app\common\model\Klass;
use think\Request;


class StudentController extends IndexController
{
	public function index(){
		// $Student=new Student;
		$students=Student::paginate();
		$this->assign('students',$students);
		return $this->fetch();
	}


	//编辑页面
	public function edit(){
		//1.获取学生id
		$id=Request::instance()->param('id/d');
		// echo $id;

		//2.查询学生对象
		if(is_null($Student=Student::get($id))){
			return $this->error('要编辑的学生不存在,请核对后再试id为'.$id);
		}

		//3.取出所有班级
		$Klasses=Klass::all();
		$this->assign('Klasses',$Klasses);
		

		//4.把对象注册给edit页面
		$this->assign('Student',$Student);

		//5.返回html
		return $this->fetch();
	}


	//更新数据
	public function update(){
		//1.获取编辑页面post过来的id
		$id=Request::instance()->post('id/d');

		// 2.根据id查询对应的学生对象,为空则报错
		if(is_null($Student=Student::get($id))){
			return $this->error('要更新的学生不存在');
		}

		// 3.把post数据暂存到对应对象里
		$Student->name=Request::instance()->post('name');
		$Student->klass_id=Request::instance()->post('klass_id');

		// 4.验证没问题则保存到数据库
		if(!$Student->validate(true)->save()){
			return $this->error('数据更新失败'.$Student->getError());
		}else{
			return $this->success('更新成功',url('index'));
		}
	}


	//删除数据
	public function delete(){

		// 1.获取页面传来的学生id,如果不存在报错:为空为0都是不存在
		$id=Request::instance()->param('id/d');
		if(is_null($id)||$id===0){
			return $this->error('未传学生id');
		}

		// 2.根据id查询对应的学生对象,为空则报错
		if(!$student=Student::get($id)){
			return $this->error('学生不存在');
		}

		// 3.删除学生对象:失败则报错,成功返回信息
		if(!$student->delete()){
			return $this->error('删除出错:'.$student->getError());
		}
		return $this->success('成功删除',url('index'));
	}


}

2.V层

<!DOCTYPE html>
<html>
<head>
	<title>编辑学生</title>
</head>
<body>
<form action="{:url('update')}" method='post'>
	<input name="id" type="hidden" value="{$Student->getData('id')}">
	<label>姓名:</label><input name="name" value="{$Student->getData('name')}"><br/>
	<label>学号:</label><input name="num" value="{$Student->getData('num')}"><br/>
	<label>性别:</label>
	<input type="radio" name="sex" value="0" {eq name="{$Student->getData('sex')}" value="0"} checked='checked'{\eq}><label></label>
	<input type="radio" name="sex" value="1" {eq name="{$Student->getData('sex')}" value="1" }checked='checked'{\eq}><label></label><br/>
	<label>班级:</label>
	<select name="klass_id">
		{volist name="Klasses" id="Klass"}
		<option value="{$Klass->id}" {eq name="Klass->id" value="$Student->klass_id"}selected="selected"{/eq}>{$Klass->name}</option>
		{/volist}
	</select><br/>
	<label>邮箱:</label>
    <input type="email" name="email" value="{$Student->getData('email')}" /><br/>
    <button type="submit">保存</button>
</form>
</body>
</html>

3.验证模块

application\common\validate\Student.php

<?php 
namespace app\common\validate;
use think\Validate;

/**
 * 
 */
class Student extends Validate
{
	protected $rule=[
		'name'=>'require|length:2,5',
		'num'=>'require',
	];
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值