美文网首页
php - tp5中使用资源控制器和资源路由后如何访问updat

php - tp5中使用资源控制器和资源路由后如何访问updat

作者: zhaoxiaohui520 | 来源:发表于2020-04-21 22:10 被阅读0次

我在tp5中使用资源路由和资源控制器的时候如何访问update,我访问edit save index 都可以,但是update却访问不了

//资源路由
Route::resource('admin','admin/Admin');
//自动生成restful风格控制器
php think make:controller admin/Admin
//Admin控制器所有代码
<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use app\admin\model\AdminModel;
use app\admin\controller\Base;

class Admin extends Base
{   
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $this->pageTitle = '管理员列表';
        $admin = new AdminModel();
        $adminList = $admin->getAdminsPage();
        $page = $adminList->render();
        $this->assign(['adminList' => $adminList, 'page' => $page]);
        return $this->view();
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        $this->pageTitle = '新增管理员';
        
        return $this->view();
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        
        if ($request->isPost()){
            //上传限制
            $validateArr = ['size'=>2048000, 'ext'=>'jpg,png'];
            //头像上传
            $uploadInfo = $this->upload('avatar', $validateArr);
            if (!$uploadInfo){
                $this->error('上传文件失败' . $uploadInfo);
            }
            //获取数据
            $data = input();
            //对获取的数据进行封装,以下代码纯属个人突然的恶趣味,华而不实
            
            //-----start-------
            $pack_data = [];
            array_walk(
                $data, 
                function($v, $k, $prefix) use (&$pack_data){ 
                    $key = $prefix. $k;
                    $pack_data[$key] = $v;
                },
                'admin_'
            );
            //-----end-------
            
            //推荐常规写法
            /*
            $pack_data = [
                'admin_name' => $data['name'],  
                'admin_passwd' => $data['passwd'],
                'admin_email' => $data['email'],
                'admin_tel' => $data['tel'],
                'admin_qq' => $data['qq'],
                'admin_birth' => $data['birth'],
            ];
            */
            $pack_data['admin_avatar'] = $uploadInfo;
            $admin = new AdminModel();
            $result = $admin->addAdmin($pack_data);
            if (!$result){
                $this->error('新增管理员失败!' . $admin->getError());
            }
            $this->success('新增管理员成功', 'admin/Admin/index');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        if (!$id){
            $this->error('非法请求!');
        }
        $this->pageTitle = '管理员修改页面';
        $admin = new AdminModel();
        $adminInfo = $admin->getAdminById($id);
        //数据库存生日的类型为datetime,我们在此处做一个转换
        if (isset($adminInfo['admin_birth'])){
            $adminInfo['admin_birth'] = date('Y-m-d', strtotime($adminInfo['admin_birth']));
        }
        $this->assign(compact("adminInfo"));
        return $this->view();
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        if ($id){
            echo $id;
        }
        if ($request->put($id)){
            echo $id;
        }
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        echo 'can\'t see ';
    }
}
//这里设置了虚拟域名
//编辑页面访问路由edit
http://www.siwakongtest.com/index.php/admin/11/edit
//列表路由访问index
http://www.siwakongtest.com/index.php/admin/
//创建资源路由访问create
http://www.siwakongtest.com/index.php/admin/create
//解决方案
<input type="hidden" name="_method" value="PUT">

相关文章

  • php - tp5中使用资源控制器和资源路由后如何访问updat

    我在tp5中使用资源路由和资源控制器的时候如何访问update,我访问edit save index 都可以,但是...

  • Rails路由

    资源路由 一行代码完成资源资源路由声明: 这会创建7个不同的路由,这些路由会映射到 Photos 控制器上。 这样...

  • 02.laravel的route

    1.配置资源路由 对某个模型和控制器配置七个资源路由 一行代码配置七个资源路由,和上面代码效果一样 2.普通路由的...

  • 4 - laravel 基础 - 控制器

    laravvel 控制器基本使用 创建普通控制器 控制器的命名空间 在使用路由是注意控制器的命名空间 创建资源控制...

  • 控制器

    控制器 资源控制器 必须 优先使用 Restful 资源控制器。 单数 or 复数? 必须 使用资源的复数形式,如...

  • Thinkphp6.0.2路由、模板渲染等问题

    1、thinkphp6.0.2 index控制器和admin控制器都可以访问,不使用路由的情况下,使用路由还没搞通...

  • JavaWeb--Filter1

    放行后访问对应资源,资源访问完成后会回到Filter中Filter执行流程:执行放行前逻辑->放行->访问资源->...

  • springmvc、springboot静态资源访问配置

    如何访问项目中的静态资源? 一.springmvc springmvc中访问静态资源,如果DispatcherSe...

  • TP5中路由与获取请求参数

    TP5中,路由是在route.php中来定义路由规则的,根目录部分可由apache和系统host文件来定义,之后的...

  • 联系人导航插件readme.md

    联系人导航插件使用 资源引入 模块中引入 资源名为:hyd.directives 控制器中使用 在控制器中注入co...

网友评论

      本文标题:php - tp5中使用资源控制器和资源路由后如何访问updat

      本文链接:https://www.haomeiwen.com/subject/fhwmihtx.html