删除特定的记录:delete()
批量删除:destroy()
view模块下显示模式(get)删除三种方法:
因为 如果使用 <a href="delete?id={$teacher->getData('id')}">删除</a>方式删除结果:当前URL对应的会触发index模块下的Delete控制器下的index触发器。thinkphp为了解决这个问题,推出了url助手函数。
1.<a href="{:url('index/Teacher/delete?id=' . $teacher->getData('id'))}">删除</a>
2.<a href="{:url('Teacher/delete?id=' . $teacher->getData('id'))}">删除</a>
3.<a href="{:url('delete?id=' . $teacher->getData('id'))}">删除</a>(推荐)
上述三个方法的不同,在于是否省略了模块名及控制器名。如果生成URL对应的ACTION与当前的ACTION,处于同一模块下,模块名可省略;处于同一控制器下,模块名和控制器名均可以省略。
由原来的http://127.0.0.1/thinkphp5/public/index/teacher/delete?id=1 使用的是?变量名=变量值
(GET)的形式
变为:http://127.0.0.1/thinkphp5.0/public/index/teacher/delete/id/1.html 使用助手函数后,变为/变量名/变量值
(pathinfo)的形式
此种方式造成的结果是url变成了绝对路径。综上原因controller C层获取数据方式语句也应该有所变化,
由原来的var_dump(Request::instance()->get());
变为:var_dump(Request::instance()->param());
在ThinkPHP中,param()
方法相当强大,它既可以获取GET方法传入的数据,又可以获取post方法传入的数据,还可以获取到pathinfo模式(/变量名/变量值
)传入的数据;而get()
方法只能获取到GET
数据,post()
方法只能获取到POST
数据。
add action -> 用户填写数据 -> 提交到insert action -> insert action处理数据。
edit action -> 从数据库中抓取用户想更新的数据 -> 将数据传给V层 -> 用户修改数据 -> 提交到update action -> update action 处理数据。
数据更新有两种方法,第一种是数组,第二种是对象。
,当我们在ThinkPHP中使用PHP
的内置类时,需要在前面加一个\
catch (\Exception $e) {
return $e->getMessage();
ThinkPHP中错误是异常一种,它的名字是:RuntimeException
。
// 调用分页
$teachers = $Teacher->paginate($pageSize); paginate()方法,并将每页显示记录的条数作为参数进行传入。
{volist name="teachers" id="_Teacher" key="key"}
<tr>
<td>{$key}</td>
<td>{$_Teacher->getData('name')}</td>
<td>{eq name='_Teacher->getData("sex")' value='0'}男{else /}女{/eq}</td>
<td>{$_Teacher->getData('email')}</td>
<td>{$_Teacher->getData('username')}</td>
<td>
<a href="{:url('edit?id=' . $_Teacher->getData('id'))}">编辑</a>
<a href="{:url('delete?id=' . $_Teacher->getData('id'))}">删除</a>
</td>
</tr>
{/volist}
我们简单看下volist这个标签,它里面有一个对是否为数组的判断。
实现的功能就是:如果你是个数组,我就直接循环输出,如果你是个对象,我就输出你里面的数组。
那么在url()函数中,是不需要有任何参数的。url()表示生成 当前模块当前控制器 的链接
每一个cookie对应着唯一的一个session
使用Db::name()
来获取某个数据表模型,
使用Resquest::instance()
来获取请求模型
使用::get()
来获取单条数据模型
使用::select()
来获取多条数据模型
使用::destroy
来销毁数据。
md5这个函数只能接收字符串类型