首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cakephp中保存JSON数据

如何在cakephp中保存JSON数据
EN

Stack Overflow用户
提问于 2012-08-30 03:29:50
回答 1查看 5.4K关注 0票数 4

我使用的是CakePHP v2.2.1稳定版。我有一个带有动作add()UsersController。我正在尝试通过ajax发送用户信息(从主页到/users/add)并保存数据。我的代码是这样的:

代码语言:javascript
复制
// /app/View/Pages/home.ctp
<?php
   $data = array('User' => array('username' => 'vegeta_super_sayajin',
    'password' => 'over9000!', 'email' => 'vegeta@supersayajin.com',
    'profile_pic' => '/home/pics/scouter.jpg', 'firstname' => 'Vegeta',
    'lastname' => 'Vegeta', 'level_id' => '9001'));
?>
<script type="text/javascript">
    var data = <?php echo json_encode($data); ?> //convert $data into json format
    $.ajax({url: '/users/add', data: "data="+data, type: 'post'});
</script>

如何在UsersController中接收此数据,以便处理和保存它?

目前,我正在尝试:

代码语言:javascript
复制
// /app/Controller/UsersController.php
function add() {
    if($this->request->is('post') {
        //returns "Error: [object Object] in logfile
        $this->log($this->request->data);
    } else {
        $this->Session->setFlash(__("The user could not be saved :("));
    }
    $this->autoRender = false;
}

$this->log($this->request->data)/app/tmp/logs/error.log文件中返回Error: [object Object],而这个用户信息在任何$this->request->params的索引中都不存在。到目前为止,我用谷歌搜索得到的只是复杂的cakephp v1.3技术。在cakephp v2.2.1中是如何做到的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-30 13:22:11

您可以尝试以下代码。它将为您工作。

代码语言:javascript
复制
<?php
$data = array(
'User' => array(
    'username' => 'vegeta_super_sayajin', 
    'password' => 'over9000!',
    'email' => 'vegeta@supersayajin.com', 
    'profile_pic' => '/home/pics/scouter.jpg',
    'firstname' => 'Vegeta', 
    'lastname' => 'Vegeta', 
    'level_id' => '9001')
    );   
?>
<script type="text/javascript">
var data = [<?php echo json_encode($data); ?>] //convert $data into json format
$.ajax({
    url: 'checks/add', 
    data: "data="+JSON.stringify(data), 
    type: 'post'});
</script>

在你的控制器的代码中:

代码语言:javascript
复制
// /app/Controller/UsersController.php
function add() {
if($this->request->is('post') {
    $this->log(json_encode($this->request->data, true)); //returns "Error: [object Object] in logfile
} else {
    $this->Session->setFlash(__("The user could not be saved :("));
}
$this->autoRender = false;
}

这是json_decode documentation。第二个参数true将对象转换为数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12185175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档