gpt4 book ai didi

mysql - Yii RESTFul,JSON 格式更新和创建

转载 作者:行者123 更新时间:2023-11-30 00:23:24 27 4
gpt4 key购买 nike

我正在尝试在 Yii 框架中使用 JSON 格式实现 RESTFul。我有一个用户表,如下所示:

CREATE TABLE user(
id int(10) NOT NULL,
email VARCHAR(100) NOT NULL,
password VARCHAR(64) NOT NULL,
nickname VARCHAR(30) NOT NULL,
PRIMARY KEY(id)
)Engine=InnoDB;

在我的 Yii userController.php 类中(我的 yii 应用程序使用 gii 实现了 CRUD)。
我有以下两个函数,它们基本上使用 RESTful 和 JSON 格式处理 CRUD API,如下所示:

public function actionRead($id=''){
$requestType = Yii::app()->request->getRequestType();
if($requestType !== 'GET' && $id === ''){
throw new Exception('$id must be specified or acces this service with GET!');
return;
}

if($id !== '0'){
$user = Yii::app()->db->createCommand('SELECT * FROM user WHERE id=:id LIMIT 1');
$user->bindParam(':id', $id);
$user = $user->queryRow();
}else{
$user = Yii::app()->db->createCommand('SELECT * FROM user WHERE 1');
$user = $user->queryAll();
}

echo json_encode($user);

}


public function actionSave($id){
$requestType = Yii::app()->request->getRequestType();
if($requestType !== 'POST'){
throw new Exception('Acces this service with POST!');
return;
}

$post = Yii::app()->request->getPost('form');

if($id !== ''){//update...need help with logic here for update

}else{//create...need help with logic here for create

}

$command = Yii::app()->db->createCommand('INSERT INTO user (id, email) VALUES (null, :email)');
$command->bindParam(':email', $post['email']);


return json_encode($command->execute());
}

通过上面的代码,我可以使用 Google Chrome 中的客户端查看和列出数据。但我在获取更新和创建工作时遇到问题。我在上面的代码注释中放置了 "create""update" 两个实现的占位符。

我可以得到一些关于如何实现这一目标的想法或解决方案吗?

最佳答案

如果您有 User 模型,那么您的代码将如下所示:

$post = Yii::app()->request->getPost('form');

if($id !== ''){//update...need help with logic here for update
$model = User::model()->findByPk($id);
}else{//create...need help with logic here for create
$model = new User;
}
$model->email = $post['email'];
$model->nickname = $post['nickname'];
$model->password = $post['password'];
$model->save();

return json_encode($model->id);

如果 $post 有属性数组。

关于mysql - Yii RESTFul,JSON 格式更新和创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23057230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com