路由
use think\Route;
//展示添加表单
Route::get('create','user/user/create');
//表单提交数据
Route::post('save','user/user/save');
//展示数据
Route::get('index','user/user/index');
//删除数据
Route::get('delete/:id','user/user/delete');
//修改展示页面
Route::get('edit/:id','user/user/edit');
//修改提交数据
Route::post('update','user/user/update');

<div class="content">
<div class="header">
<h1 class="page-title">管理员新增页面</h1>
</div>
<div class="well">
<!-- add form -->
<form action="/save" method="post" id="tab" enctype="multipart/form-data">
<label>用户名:</label>
<input type="text" name="username" value="" class="input-xlarge">
<label>头像:</label>
<input type="file" name="img" value="" class="input-xlarge">
<label>邮箱:</label>
<input type="email" name="email" value="" class="input-xlarge">
<label>手机号:</label>
<input type="tel" name="tel" value="" class="input-xlarge">
<br>
<button class="btn btn-primary" type="submit">保存</button>
</form>
</div>
</div>

<?php

namespace app\user\controller;

use app\user\model\userModel;
use think\Controller;
use think\Image;
use think\Request; class User extends Controller
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
//接受关键字
$word = input('word');
$where = [
'username' => ['like', "%$word%"]
];
$data = userModel::show($where); if (!empty($word)) {
foreach ($data as $k => $v) {
$v['username'] = str_replace($word, "<font style='color:red;'>$word</font>", $v['username']); } }
//携带参数,去视图
$this->assign('data', $data);
return view(); } /**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
//
return view(); } /**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
//
$params = $request->param();
$file = $request->file('img');
//验证图片
if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {
// string(45) "20210820\0fd2d7bea8a34235624d83e914780248.gif"
$filename = DS . 'uploads' . DS . $info->getSaveName();
//缩略图
$image = \think\Image::open('.' . $filename);
$image->crop(100, 100)->save('.' . $filename);
//替换
$params['img'] = $filename;
} else {
// 上传失败获取错误信息
echo $file->getError();
}
}
$result = userModel::add($params);
if (!$result) {
$this->error('添加失败', 'save');
}
$this->success('添加成功', '/index'); } /**
* 显示指定的资源
*
* @param int $id
* @return \think\Response
*/
public function read($id)
{
//
} /**
* 显示编辑资源表单页.
*
* @param int $id
* @return \think\Response
*/
public function edit($id)
{
//
$data = userModel::edit($id); //传输数据至页面
$this->assign('data', $data);
return view(); } /**
* 保存更新的资源
*
* @param \think\Request $request
* @param int $id
* @return \think\Response
*/
public function update(Request $request, $id)
{
//
$params = $request->param();
$imgs = $request->file('imgs');
$params['imgs'] = $imgs;
$result = userModel::updateData($params); if (!$result) {
$this->error('修改失败', '/index');
}
$this->success('修改成功', '/index'); } /**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete($id)
{
//
$result = userModel::del($id);
if (!$result) {
$this->error('删除失败', 'save');
}
$this->success('删除成功', '/index');
}
}

列表展示页面

<div class="content">
<div class="header">
<h1 class="page-title">管理员列表</h1>
</div> <div class="well">
<!-- search button -->
<form action="index" method="get" class="form-search">
<div class="row-fluid" style="text-align: left;">
<div class="pull-left span4 unstyled">
<p> 用户名:<input class="input-medium" name="word" type="text"></p>
</div>
</div>
<button type="submit" class="btn">查找</button>
<a class="btn btn-primary" href="create">新增</a>
</form>
</div>
<div class="well">
<!-- table -->
<table class="table table-bordered table-hover table-condensed">
<thead>
<tr>
<th>编号</th>
<th>用户名</th>
<th>头像</th>
<th>邮箱</th>
<th>手机号</th>
</tr>
</thead>
{foreach $data as $k=>$v}
<tbody>
<tr class="success">
<td>{$k+1}</td>
<td>{$v.username}</td>
<td><img src="{$v.img}" alt=""></td>
<td>{$v.email}</td>
<td>{$v.tel}</td>
<td>
<a href="edit/{$v.id}"> 编辑 </a>
<a href="delete/{$v.id}" onclick="return confirm('您确定要删除吗?')" > 删除 </a>
</td>
</tr>
</tbody>
</tbody>
{/foreach}
</table>
<!-- pagination -->
</div>
{$data->render()}
<!-- footer -->
<footer>
<hr>
<p> 2017 <a href="javascript:void(0);" target="_blank">ADMIN</a></p>
</footer>
</div>

//修改表单页面

<div class="content">
<div class="header">
<h1 class="page-title">管理员编辑</h1>
</div> <div class="well">
<!-- add form -->
<form action="/update" method="post" enctype="multipart/form-data">
<label>用户名:</label>
<input type="text" name="username" value="{$data.username}" class="input-xlarge">
<label>现头像:</label>
<img src="{$data.img}" alt="">
<p><span style="color: green">您可以选择重新上传的照片:</span></p>
<input type="file" name="imgs" class="input-xlarge">
<label>邮箱:</label>
<input type="email" name="email" value="{$data.email}" class="input-xlarge">
<label>手机号:</label>
<input type="tel" name="tel" value="{$data.tel}" class="input-xlarge">
<br>
<input type="hidden" name="id" value="{$data.id}">
<button class="btn btn-primary" type="submit">修改</button>
</form>
</div>
<!-- footer -->
<footer>
<hr>
<p> 2017 <a href="javascript:void(0);" target="_blank">ADMIN</a></p>
</footer>
</div>

模型页面

<?php

namespace app\user\model;

use think\Model;

class userModel extends Model
{
//
const SUM=2;
protected $table='user';
public static function add($params){
return self::create($params,true);
}
//展示数据
public static function show($where){
return self::where($where)
->paginate( self::SUM);
}
//删除数据
public static function del($id){
return self::destroy($id);
}
//修改id展示页面
public static function edit($id){
return self::find($id);
}
//执行修改
public static function updateData($params){
return self::update($params,$params['id'],true);
} }

think php 路由增删改查(搜索+关键字标红+缩略图)的更多相关文章

  1. laravel7 搜索关键字标红及手机号,身份证号隐藏

    控制器代码 public function index(Request $request) { //接受搜索关键字 $word = $request->get('name'); $start = ...

  2. Magicodes.WeiChat——ASP.NET Scaffolding生成增删改查、分页、搜索、删除确认、批量操作、批量删除等业务代码

    关于T4代码生成这块,我之前写过几篇帖子,如:<Magicodes.NET框架之路——让代码再飞一会(ASP.NET Scaffolding)>(http://www.cnblogs.co ...

  3. 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器

    一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...

  4. laravel 增删改查 数据库设置 路由设置

    laravel 框架的路由设置: url: http://www.shanzezhao.com/laraverl/my_laravel/public/index.php/indexs laravel ...

  5. 分布式搜索elasticsearch 索引文档的增删改查 入门

    1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/ ...

  6. Node.js、express、mongodb 入门(基于easyui datagrid增删改查)

    前言 从在本机(win8.1)环境安装相关环境到做完这个demo大概不到两周时间,刚开始只是在本机安装环境并没有敲个Demo,从周末开始断断续续的想写一个,按照惯性思维就写一个增删改查吧,一方面是体验 ...

  7. yii2-basic后台管理功能开发之二:创建CRUD增删改查

    昨天实现了后台模板的嵌套,今天我们可以试着创建CRUD模型啦 刚开始的应该都是“套用”,不再打算细说,只把关键的地方指出来. CRUD即数据库增删改查操作.可以理解为yii2为我们做了一个组件,来实现 ...

  8. laravel增删改查

    基本想法是搭建一个FormController,所有以后需要配置生成后台的controller就继承这个FormController就好了.在FormController中定义属性: class Fo ...

  9. MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查

    MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查 本文的目的:   1.MVC3项目简单配置EF code first生成并初始化数据 ...

随机推荐

  1. Ajax创建对象的方法

    ajax涉及的技术包括Html.css.dom.xml.javascript等. 主流创建ajax对象的方法: IE6以下版本浏览器创建ajax对象方法是: 定义一个方法创建ajax对象:

  2. linux sftp

    转载请注明来源:https://www.cnblogs.com/hookjc/ sftp用法 1. 用sftp如何登录服务器 sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输, ...

  3. UIPickView的基本使用

    UIPickView和TableView一样,想要展示数据也要设置数据源和代理设置数据源self.pickView.dataSource = self;设置代理self.pickView.delega ...

  4. LNMP平台的redis对接安装

    LNMP平台的redis对接安装 目录 LNMP平台的redis对接安装 一.安装LNMP的各个组件 二.安装redis服务 三.安装redis扩展 四.修改php配置文件 五.测试连接 一.安装LN ...

  5. dfs+search

    1.数的划分 点击查看搜索 #include<iostream> #include<cstdio> #include<cmath> #include<algo ...

  6. 274-基于XC7V690T的3U VPX信号处理板

    一.板卡概述 本板卡系我司自主研发的基于3U VPX导冷架构的信号处理板,适用于高速图像处理,雷达信号处理等.芯片采用工业级设计.该处理板包含1片Xilinx公司的Virtex7系列FPGA-XC7V ...

  7. C#设置进程PATH环境变量值解决某些Win32DLL找不到路径问题

    C#.NET通过设置当前进程PATH环境变量值解决某些Win32DLL找不到路径问题 以下函数设置PATH环境变量值(请注意:该环境变量为当前进程的环境变量,非系统环境变量)用于解决在调用某些Win3 ...

  8. ASP.NET Core 6框架揭秘实例演示[08]:配置的基本编程模式

    .NET的配置支持多样化的数据源,我们可以采用内存的变量.环境变量.命令行参数.以及各种格式的配置文件作为配置的数据来源.在对配置系统进行系统介绍之前,我们通过几个简单的实例演示一下如何将具有不同来源 ...

  9. unity3d导出xcode项目使用afnetworking 3框架导致_kUTTagClassMIMEType 问题解决方案

    http://blog.csdn.net/huayu_huayu/article/details/51781953  (参考链接) Undefined symbols for architecture ...

  10. [LeetCode]1108. IP 地址无效化

    给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本. 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 ".". 示例 ...