ThinkPHP5模型实例详解 / 删除当前记录:delete

删除当前记录:delete

删除当前记录:delete( )

1. 源码:

    /**
     * 删除当前的记录
     * @access public
     * @return integer
     */
    public function delete()
    {
        if (false === $this->trigger('before_delete', $this)) {
            return false;
        }

        $result = $this->db()->delete($this->data);

        $this->trigger('after_delete', $this);
        return $result;
    }

2. 参数与返回值:

  • 参数:该方法不需要任何参数;
  • 返回值:返回受影响记录数量,成功返回:1,否则返回:0;

3. 实例演示:

该方法很简单,根据数据对象主键,删除对应表中记录。

一、任务:删除id = 1002 的记录;
步骤:

  1. 获取id=1002的记录,当然同时也获取到了主键值;
  2. 根据条件id=1003,删除记录。
  • 控制器:Index.php
<?php
namespace app\index\controller;

//导入自定义模型类
use app\index\model\Staff;
class Index {
  public function index(){

   //获取id=1002的数据 
   $staff = Staff::get(1002);

   //根据数据对象主键,删除数据,并返回受影响记录数
   $affected = $staff -> delete();

   //删除成功返回:1,否则:0
   echo  $affected ? '删除成功!' : '删除失败~~';   
 }
}

上例中:get方法参数除了主键外,还可以使用所有查询表达式或者闭包函数,但只返回满足条件的第一条记录。


4. 总结:

该方法很简单,但功能单一,ThinkPHP5中的destroy方法更加强大,下节课讲~~