Yii создание api для загрузки данных
1. в приложении нужно сделать чпу
\yii\protected\config\main.php
//////
\yii\.htaccess
/////
2. На основании таблицы
////
\yii\protected\controllers\MuserController.php
/////
клиент
/////
\yii\protected\config\main.php
//////
<? 'urlManager' => array( 'urlFormat' => 'path', 'showScriptName' => false, 'rules' => array( // стандартное правило для обработки '/' как 'site/index' '' => 'site/index', // это пример добавления который заработал //'secondcontroller/<action:.*>'=>'secondcontroller/<action>', 'user/<action:.*>' => 'user/<action>', //'<action:.*>'=>'site/<action>', //закомментил а то глючило с ним '<controller:\w+>/<id:\d+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>', ), ),//////
\yii\.htaccess
/////
Options Includes FollowSymLinks #hide index.php RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php/////
2. На основании таблицы
////
CREATE TABLE `tbl_user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NULL DEFAULT NULL, `email` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `username` (`username`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB ;////
\yii\protected\controllers\MuserController.php
/////
<? public function actionApi() { if (!empty($_POST)) { $model = new Muser; $model->attributes = $_POST; try { if ($model->save()) echo json_encode(array($model->id)); elseif ($model->hasErrors()) { echo json_encode($model->getErrors()); } else echo json_encode(array('false')); } catch (CDbException $e) { echo json_encode(array($e->errorInfo[2])); } } else echo json_encode(array('no data')); }/////
клиент
/////
<?php $post = array( 'username' => 'sds3', 'password' => 'Password', 'email' => 'Email', ); $ch = curl_init('http://yii/muser/api'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // execute! $response = curl_exec($ch); echo '<pre>'; print_r($response); // close the connection, release resources used curl_close($ch);/////
Комментарии
Отправить комментарий