加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何在cakephp中保存JSON数据

发布时间:2020-12-13 22:44:52 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Cake PHP v2.2.1稳定版.我有一个带有动作add()的UsersController.我正在尝试通过ajax(从主页到/ users / add)发送用户信息并保存数据.我的代码是这样的: // /app/View/Pages/home.ctp?php $data = array('User' = array('username' = 'vegeta_sup
我正在使用Cake PHP v2.2.1稳定版.我有一个带有动作add()的UsersController.我正在尝试通过ajax(从主页到/ users / add)发送用户信息并保存数据.我的代码是这样的:

// /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中接收这些数据,以便我可以处理和保存它?

目前,我正在尝试:

// /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文件中返回错误:[object Object],并且$user中的任何一个都不存在此用户信息this-> request-> params的索引.到目前为止,我所有的谷歌搜索都只返回了复杂的cakephp v1.3技术.在cakephp v2.2.1中如何完成?

解决方法

您可以尝试以下代码.它会对你有用.

<?php
$data = array(
'User' => array(
    'username' => 'vegeta_super_sayajin','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>

在您的控制器代码中:

// /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将对象转换为数组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读