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);/////
Комментарии
Отправить комментарий