2015-11-03 105 views
0

我正在Codeigniter中创建注册webservice。我想以json格式获得响应,如果注册成功,那么数据将以json格式返回,如果数据已经存在,那么将返回json响应。我对如何从控制器传递值来查看并将其转换为json响应感到困惑。下面是我的代码:在codeigniter中创建webservice时无法获得json格式的响应

控制器:

<?php 

session_start(); //we need to start session in order to access it through CI 

Class User_Signup extends CI_Controller { 

public function __construct() { 
parent::__construct(); 

// Load form helper library 
$this->load->helper('form'); 

// Load form validation library 
$this->load->library('form_validation'); 

// Load session library 
$this->load->library('session'); 


// Load database 
$this->load->model('signup_model'); 
} 

public function registration($fname,$lname,$email) { 
$data=array('first_name' => $fname,'last_name' => $lname,'email' => $email); 
$result = $this->signup_model->registration_insert($data); 
if ($result == TRUE) { 
$this->load->view('signup_message',$data); 
} else { 
$this->load->view('signup_message',$data); 
} 
} 
} 

Signup_model(模型):

<?php 

Class Signup_Model extends CI_Model { 

// Insert registration data in database 
public function registration_insert($data) { 

// Query to check whether username already exist or not 
$condition = "email =" . "'" . $data['email'] . "'"; 
$this->load->database(); 
$this->db->select('*'); 
$this->db->from('user'); 
$this->db->where($condition); 
$this->db->limit(1); 
$query = $this->db->get(); 
if ($query->num_rows() == 0) { 

// Query to insert data in database 
$this->db->insert('user', $data); 
if ($this->db->affected_rows() > 0) { 
return true; 
} 
} else { 
return false; 
} 
} 
} 
?> 

查看:

<?php 

/* output in necessary format */ 
if ($format == 'json') 
{ 
    //header('Content-type: application/json'); 

    echo str_replace('\/', '/', json_encode($posts)); 
} else 
{ 
    header('Content-type: text/xml'); 
    echo '<posts>'; 
    foreach ($posts as $index => $success) 
    { 
     if (is_array($success)) 
     { 
      foreach ($success as $key => $value) 
      { 
       echo '<', $key, '>'; 
       if (is_array($value)) 
       { 
        foreach ($value as $tag => $val) 
        { 
         echo '<', $tag, '>', htmlentities($val), '</', $tag, '>'; 
        } 
       } 
       echo '</', $key, '>'; 
      } 
     } 
    } 
    echo '</posts>'; 
} 

?> 

http://localhost/MyProject/user_signup/registration/Amit/Kumar/amit

+0

您的网络服务部分在哪里 –

+0

Abdulla-我是codeigniter的新手,请告诉我如何在json中使用codeigniter生成响应,以便其他人可以使用它。 – user3653474

回答

0

视图是不必要的返回JSON。只需从控制器返回json_encode($ your_object)即可。

无论哪种方式,您正在寻找的方法是json_encode()。