yii(curd)接口开发

举报
陈业贵 发表于 2021/12/10 10:33:52 2021/12/10
【摘要】 简单的接口开发

第一步:在这里插入图片描述
理解这里的意思.
第二步:
写自己的域名.
比如http://www.demonstration.com.(本地地址的哈)。
在nginx里面新建一个文件demonstration.php(直接复制粘贴)

server {
    listen 80;
    charset utf-8;
    server_name www.demonstration.com;
    access_log C:/Wnmp/logs/demonstration_access.log;

    set  $webroot C:/Wnmp/html/demonstration/frontend;
     root $webroot/web;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
		try_files  $uri =404;
		fastcgi_pass   php_processes;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
		include        fastcgi_params;
    }

    location ~ ^/(js|css|images|image|files)/ {
		root $webroot;
		expires 1h;
		log_not_found off;
		access_log off;
    }

    location ~ ^/(attachments)/ {
        root $webroot;
		expires 1h;
		log_not_found off;
		access_log off;
    }

    location ~ /\.(ht|svn|git) {
        deny all;
    }
}

第三步:
在frontend/config/新建一个路由文件.名字为(rules.php)复制粘贴.

<?php
/**
 * Created by PhpStorm.
 * User: Chan
 * Date: 2018/6/8
 * Time: 14:14
 */

use yii\rest\UrlRule;

return [
    [
        'class'=>UrlRule::class,
        'controller'=>'navigation',
        'extraPatterns' =>[
            'form'=>'form',
        ],
    ],
];

第四步:在frontend/controllers里面新建一个文件.NavigationController.php

<?php
namespace frontend\controllers;
use common\models\Form;

class NavigationController extends Controller
{

//增加
   public function actionForm()
    {
        $form=new Form();
        $datetime = new \DateTime;
        $request = \Yii::$app->request;
        $form->name = $request->post("name");
        $form->phone= $request->post("phone");
        $form->address = $request->post("address");
        $form->time =$datetime->format('Y-m-d H:i:s');
        if($form->save())
        {
            return $this->data(['form'=>$form],"保存成功",0);
        }
        else
        {
            return $this->error("保存失败");
        }

    }//查询
   public  function actionIndex()
    {
        $gets = \Yii::$app->db->createCommand('SELECT * FROM form')
            ->queryAll();
        if($gets)
        {
            return $this->data($gets,"查询成功",0);
        }
        else
        {
            return $this->error("查询失败");
        }
    }//删除
    public  function actionDelete($id)
    {
        $form = Form::findOne([ 'id' => $id ]);
        if($form==null)
        {
            return $this->error('抱歉,这条数据在数据表是里面是没有的,不能删除!');
        }
        if($form->delete())
        {
            return $this->msg("删除成功");
        }
        else
        {
            return $this->error("数据不存在或已经删除!");
        }

    }//更新
  public function actionUpdate($id)

  {//前端的数据
      //第一步:先链接数据库看看表里有没有这条数据
      $id1= \Yii::$app->db->createCommand("SELECT * FROM form where id=$id")->queryOne();
      if(!$id1)
      {
          return $this->error("抱歉,这条数据在数据表是里面是没有不能更新!");
      }
      //第二步,数据表里面有这条数据怎么进行二次更新也能行,重复更新也能行
      else
      {$datetime = new \DateTime;
      $request = \Yii::$app->request;
      $name = $request->getBodyParam("name");
      $phone= $request->getBodyParam("phone");
      $address = $request->getBodyParam("address");
      $time =$datetime->format('Y-m-d H:i:s');
      //自己数据库里面的数据

     $result= \Yii::$app->db->createCommand()->update("{{%form}}",[
            'name'=>$name,
            'phone'=>$phone,
          "address"=>$address,
          "time"=>$time,
          'id'=>$id
      ],['id'=>$id])->execute();


          return $this->msg("更新成功");
  }}


}

mysql表结构:
在这里插入图片描述
第五步:
自动生成一个form.php在commom/model/文件下.
怎么运行呢?增加
在这里插入图片描述

查询:
在这里插入图片描述

删除;
在这里插入图片描述

更新:
在这里插入图片描述
postman里面的数据
在这里插入图片描述

核心在于:
创建需要放数据,查询不用。更新用。删除不用.(因为删除是删除数据库中的某一条数据).
更新是必须数据库里面有的才能更新!!!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。