yii2调通接口后,咱们来做个表单接口(修改版本)
什么叫做表单接口呢?
创建并且保存数据到数据库中的接口叫做表单接口
sql:
-- phpMyAdmin SQL Dump-- version 4.5.1-- http://www.phpmyadmin.net---- Host: 127.0.0.1-- Generation Time: 2022-03-06 14:45:36-- 服务器版本: 10.1.13-MariaDB-- PHP Version: 5.6.21SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8mb4 */;---- Database: `ssss`---- ------------------------------------------------------------ 表的结构 `article`--CREATE TABLE `article` ( `id` int(100) NOT NULL, `name` varchar(200) COLLATE utf8_vietnamese_ci NOT NULL, `phone` varchar(100) COLLATE utf8_vietnamese_ci NOT NULL, `address` text COLLATE utf8_vietnamese_ci NOT NULL, `time` int(14) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_vietnamese_ci;---- Indexes for dumped tables------ Indexes for table `article`--ALTER TABLE `article` ADD PRIMARY KEY (`id`);---- 在导出的表使用AUTO_INCREMENT------ 使用表AUTO_INCREMENT `article`--ALTER TABLE `article` MODIFY `id` int(100) NOT NULL AUTO_INCREMENT;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
然后gii生成到common/models下.
第一:虚拟域名,看我博客,就知道啦.美化url也是啦
第一步:
把backend复制一份,改名为api.
第二步:
在common/config/bootstrap.php下粘贴下面这个代码.
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
第三步:在api/config/main-local.php下粘贴以下这句话。
<?php$config = [ 'components' => [ 'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => 'qixaipxaipscn', 'parsers' => [ 'application/json' => 'yii\web\JsonParser' ] ], ],];if (!YII_ENV_TEST) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', ];}return $config;
第四步:
在api/config/main.php下,粘贴这句代码.
<?php$params = array_merge( require(__DIR__ . '/../../common/config/params.php'), require(__DIR__ . '/../../common/config/params-local.php'), require(__DIR__ . '/params.php'), require(__DIR__ . '/params-local.php'));return [ 'id' => 'app-api', 'basePath' => dirname(__DIR__), 'controllerNamespace' => 'api\controllers', 'bootstrap' => ['log'], 'modules' => [], 'components' => [ 'request' => [ 'csrfParam' => '_csrf-api', ], 'user' => [ 'identityClass' => 'common\models\User', 'enableAutoLogin' => true, 'identityCookie' => ['name' => '_identity-api', 'httpOnly' => true], ], 'session' => [ // this is the name of the session cookie used for login on the api 'name' => 'advanced-api', ], 'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], ], ], 'errorHandler' => [ 'errorAction' => 'site/error', ], 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'article'], ], ], ], 'params' => $params,];
然后在api/controller/下新建一个叫做ArticleController.php的文件哦(复制粘贴即可)
<?phpnamespace api\controllers;use common\models\Article;class ArticleController extends \yii\rest\Controller{//增加 public function actionCreate() { $article=new Article(); $datetime = new \DateTime; $request = \Yii::$app->request; $article->id = $request->post("id",""); $article->name = $request->post("name",""); $article->phone= $request->post("phone",""); $article->address = $request->post("address",""); $article->time=$datetime->format('YmdHis'); if($article->save()) { return (['code' => 200, 'msg' => '操作成功', 'data' => $article]); } }}