访问接口不返回结果

根据文档,做了一个简单的接口,返回所有符合条件的信息。通过var_dump($rs);可以得到数据
<pre class='xdebug-var-dump' dir='ltr'>
<small>D:\wamp64\www\my-site\phalapi\Demo\Domain\Event.php:18:</small>
<b>array</b> <i>(size=2)</i>
0 <font color='#888a85'>=></font>
<b>array</b> <i>(size=2)</i>
'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'9c6ca35b-3465-11e6-b1fa-28d2440e73c7'</font> <i>(length=36)</i>
'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'麦克雷'</font> <i>(length=6)</i>
1 <font color='#888a85'>=></font>
<b>array</b> <i>(size=2)</i>
'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'b999cbcd-3607-11e6-b1fa-28d2440e73c7'</font> <i>(length=36)</i>
'name' <font color='#888a85'>=></font> <font color='#3465a4'>null</font>
但是最后数据不打印出来,其他接口可以正常打印。
已邀请:

dogstar - PhalApi创始人

赞同来自:

Api和Domain类的源代码,贴一下?以及请求的接口链接,和返回结果。

ls7210021

赞同来自:

//Domain
class Domain_Event
{

public function getEventList($username)
{
$rs = array();


// 版本1:简单的获取
$model = new Model_Event();
$rs = $model->getEventList($username);
var_dump($rs);
return $rs;
}
}
   
//API
Eventlist' => array(
'username' => array('name' => 'username', 'require' => true),
),
public function Eventlist(){
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$domain=new Domain_Event();
$info=$domain->getEventList($this->username);

if (empty($info)) {
DI()->logger->debug('event not found', $this->username);

$rs['code'] = 1;
$rs['msg'] = T('no event');
return $rs;
}
$rs['info']=$info;
var_dump($rs);
return $rs;

}
}
//链接
http://localhost/my-site/phala ... 3D1__
返回结果没有 只有用var_dump可以看到问题里的东西 

dogstar - PhalApi创始人

赞同来自:

应该是写法有误,应该在Api类返回,可参考:http://www.phalapi.net/tutorial.html

ls7210021

赞同来自:

<?php

class Api_User extends PhalApi_Api {

public function getRules() {
return array(
'getBaseInfo' => array(
'userId' => array('name' => 'user_id', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
),
//接口名为userId 数据类型 int 最小值为1 是否必须 是
'getMultiBaseInfo' => array(
'userIds' => array('name' => 'user_ids', 'type' => 'array', 'format' => 'explode', 'require' => true, 'desc' => '用户ID,多个以逗号分割'),
),

'login' => array(
'username' => array('name' => 'username', 'require' => true),
'password' => array('name' => 'password', 'require' => true, 'min' => 6),
),
'Eventlist' => array(
'username' => array('name' => 'username', 'require' => true),
),
);



}

/**
* 获取用户基本信息
* @desc 用于获取单个用户基本信息
* @return int code 操作码,0表示成功, 1表示用户不存在
* @return object info 用户信息对象
* @return int info.id 用户ID
* @return string info.name 用户名字
* @return string info.note 用户来源
* @return string msg 提示信息
*/
public function getBaseInfo() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());

$domain = new Domain_User();
$info = $domain->getBaseInfo($this->userId);

if (empty($info)) {
DI()->logger->debug('user not found', $this->userId);

$rs['code'] = 1;
$rs['msg'] = T('user not exists');
return $rs;
}

$rs['info'] = $info;

return $rs;
}

/**
* 批量获取用户基本信息
* @desc 用于获取多个用户基本信息
* @return int code 操作码,0表示成功
* @return array list 用户列表
* @return int list[].id 用户ID
* @return string list[].name 用户名字
* @return string list[].note 用户来源
* @return string msg 提示信息
*/
public function getMultiBaseInfo() {
$rs = array('code' => 0, 'msg' => '', 'list' => array());

$domain = new Domain_User();
foreach ($this->userIds as $userId) {
$rs['list'][] = $domain->getBaseInfo($userId);
}

return $rs;
}
/**
* 简易登陆
* @desc 简易登陆
* @return int code 操作码,0表示成功, 1表示用户不存在或密码错误
* @return object info 用户信息对象
* @return int info.id 用户ID
* @return string info.name 用户名字
* @return string info.note 用源
* @return string msg 提示信息
*/
public function login() {
$rs = array('code' => 0, 'msg' => '', 'info' => array());

$domain = new Domain_User();
$info = $domain->login($this->username,$this->password);

if (empty($info)) {
DI()->logger->debug('user not found', $this->username);

$rs['code'] = 1;
$rs['msg'] = T('user not exists');
return $rs;
}

$rs['info'] = $info;
var_dump($rs);
return $rs;

}
/**
* 获取用户基本信息
* @desc 用于获取所有事件

*/
public function Eventlist(){
$rs = array('code' => 0, 'msg' => '', 'info' => array());
$domain=new Domain_Event();
$info=$domain->getEventList($this->username);

if (empty($info)) {
DI()->logger->debug('event not found', $this->username);

$rs['code'] = 1;
$rs['msg'] = T('no event');
return $rs;
}

$rs['info']=$info;
var_dump($rs);
return $rs;

}
}

ls7210021

赞同来自:

问题已经解决 因为数据库编码问题导致输出中文是出现乱码,然后无法返回。

要回复问题请先登录注册