CRD:Create Update Read Delete
新增模板add.html,控制类
<?php
namespace Home\Controller;
use Think\Controller;
class FormController extends Controller{
}
不写任何操作,直接访问依然访问成功。因为ThinkPHP在没有找到对应的操作方法,会检查是否存在模板文件,如果有就直接渲染该模板文件输出。
namespace Home\Controller;
use Think\Controller;
class FormController extends Controller {
public function insert(){
$Form=D('Form');
if($Form->create()){
$result=$Form->add();
if($result){
$this->success('数据添加成功');
}else{
$this->error('数据添加失败');
}
}else{
$this->error($Form->getError());
}
}
}
如果主键是自增类型 插入成功后返回该主键的值。非自增主键的话,返回插入数据的个数。返回false 插入数据出错。
模型
D函数 M函数 区别:D函数需要有对应的模型类,而且create方法会自动把表单提交的数据进行自动验证和自动完成。验证失败,可以通过模型的getError方法获取验证提示信息。验证通过,则表示数据对象成功创建,但只是保存在内存中,调用add方法写入数据库。
PS:创建数据过程create方法创建数据对象->调用add方法输入数据库。 create中验证数据 add添加数据
//add模板
<body>
<FORM method="post" action="__URL__/insert">
标题:<INPUT type="text" name="title"><br/>
内容:<TEXTAREA name="content" rows="5" cols="45"></TEXTAREA><br/>
<INPUT type="submit" value="提交">
</FORM>
</body>
//模型 这里加入验证方法可以 对其验证
<?php
namespace Home\Model;
use Think\Model;
class FormModel extends Model {
//定义验证方法
protected $_validate=array(
array('title','require','标题必填'),
);
//自动完成
protected $_auto=array(
array('create_time','time',1,'function')
);
}
数据内部完成 非页面填写
<?php
namespace Home\Controller;
use Think\Controller;
class FormController extends Controller {
public function insert(){
$Form=D('Form');
if($Form->create()){
$result=$Form->add();
if($result){
$this->success('数据添加成功');
}else{
$this->error('数据添加失败');
}
}else{
$this->error($Form->getError());
}
}
public function add(){
$Form=D('Form');
$Form->title='insert';//$Form['title']
$Form->content='insert content';//$Form['content']
$Form->create_time=time();//$Form['create_time']
echo $Form->add();
}
//post 请求 验证
public function getInfoByID($id){
$ID=D('Form');
if($ID->create()){
$data=$ID->find($id);
$this->assign('data',$data);
$this->display('show');
}else{
$this->error($ID->getError());
}
}
//get url传参
public function getID($id){
$get=D('Form');
$data=$get->find($id);
$this->assign('data',$data);
$this->display('show');
}
public function selTitleByID($id){
$get=D('form');
$title=$get->where('id='.$id)->getField('title');
echo $title;
}
public function edit($id=1){
$Form=D('form');
$data=$Form->find($id);
$this->assign('data',$data);
$this->display('edit');
}
public function update(){
$Form=D('form');
if($Form->create()){
if($Form->save()){
$this->success('数据修改成功');
}else{
$this->error('数据错误');
}
}else{
$this->error($Form->getError());
}
}
public function index(){
$this->assign('name','hhhhhhhhhhhhhhhhh');
$this->display();
}
public function getUpdate($id=1){
$Form=M('form');
$Form->id=$id;
$Form->title='11';
$Form->content='111';
$Form->create_time=time();
if($Form->save()){
$this->success('更新成功');
}else{
$this->error('更新失败');
}
}
public function getUpdate_Field($id){
$Form=M('form');
$msg=$Form->where('id='.$id)->setField('title','url update');
if($msg){
echo '成功';
}else{
echo '失败';
}
}
public function delete($id){
$Form=M('form');
//$Form->delete(2,3) 删除多条
if($Form->delete($id)){
$this->success($id.' 删除成功');
}else{
$this->error($id.' 删除失败');
}
/*
根据ID删除数据
$Form->where('id='.$id)->delete();
删除所有状态为0的记录
$Form->where('state=0')->delete();*/
}
public function jiafen(){
$User = M("User"); // 实例化User对象
$User->where('id=5')->setInc('score',3); // 用户的积分加3
$User->where('id=5')->setInc('score'); // 用户的积分加1
$User->where('id=5')->setDec('score',5); // 用户的积分减5
$User->where('id=5')->setDec('score'); // 用户的积分减1
}
}
url请求–>控制器—>操作方法—->对应的模板。如果没有控制器操作方法 直接跳转到模板文件