我在获取ZF2 jsonModel从教义查询返回多个结果时遇到问题。
仅当我尝试返回数组结果时才出现此问题,而在返回单个项目时不出现
我的代码如下:
public function mosquesAction() {
$em = $this
->getServiceLocator()
->get('Doctrine\ORM\EntityManager');
$dql = "select m.name from \Application\Entity\Mosque m ";
$result = $em->createQuery($dql)->getResult();
return new JsonModel($result);
}
清真寺实体是:
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;
/** @ORM\Entity */
class Mosque {
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
private $id;
/** @ORM\Column(type="string") */
private $name;
/** @ORM\Column(type="string") */
private $address;
/** @ORM\Column(type="string") */
private $email;
/** @ORM\Column(type="string") */
private $website;
/** @ORM\Column(type="string") */
private $phone;
/** @ORM\Column(type="string") */
private $mobile;
/** @ORM\Column(type="string") */
private $fax;
/** @ORM\Column(type="string") */
private $coordinates;
/** @ORM\ManyToOne(targetEntity="Canton", inversedBy="mosques") */
private $canton;
public function getId() {
return $this->id;
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
当我将返回值更改为
return new JsonModel($result[0])
我得到结果
{“名称”:“ IDTV-Mimar Sinan Camii”}
编辑:
我想我找到了问题的根源,我发布的代码没有问题,但似乎JsonModel无法处理特殊字符,例如
伊斯兰国王基金会
所以我现在的问题是,如何在php5.3的JsonModel中编码这些字符?
在此先感谢您,我的英语不好。
参考方案
在使用了不同的选项之后,我发现问题出在与MySQL数据库的教义连接中,因此我将数据库排序规则更改为_utf8_general_i_,并向驱动程序参数添加了一些参数:
'charset' => 'utf8',
'driverOptions' => array(
1002 => 'SET NAMES utf8'
)
现在我得到了期望的结果
{
"id": 2,
"name": "Föderation Islamischer Gemeinschaften LU",
"address": "Hauptstrasse 58",
"email": "",
"website": "",
"phone": "041 260 90 98",
"mobile": "",
"fax": "",
"coordinates": "47.0666986,8.2812254"
}
PHP-MySQL结果转换为JSON - php我试图了解如何将MySQL结果转换为JSON格式,以便以后可以在Javascript中使用此JSON来构建HTML表。但是我的代码只是产生大量的空值,我还不明白为什么。$result = mysqli_query($con, "SELECT * FROM Customers"); $test = json_encode($result);…
PHP Count数组元素 - php嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…
PHP:从函数返回值并直接回显它? - php这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…
PHP:将数据从二维数组复制到一维数组的最快方法 - php我有一个巨大的二维PHP数组,带有500万行。$t = [ [ "id" => 1, "name" => "foo" ], [ "id" => 2, "name" => "bar" ] ]; 现在,我必须将此数组的I…
PHP str_replace是否具有大于13个字符的限制? - php直到击中第13个字符为止。一旦str_ireplace在cyper数组中击中“ a”,str_ireplace就停止工作。数组的大小有限制吗?请记住,如果键入“ abgf”,我会得到“ nots”,但是如果键入“ abgrf”,我应该得到“ notes”,那么我就会得到“ notrs”。机架使我的大脑无法解决。$_cypher = array("n…