我完全失去了json和cakephp。 我从数据库中提取数据
$this->loadModel('Config');
$config = $this->Config->find('first',array(
'fields' => array(
'sitename',
'sitestatus',
'siteadminemail',
'sitehomepage', // homepage
'poststatus',
'postrssstatus',
'mailusesmtp',
'mailsmtpuser',
'mailsmtppw',
'mailsmtpport',
'mailsmtphosts',
'mailsmtpauth',
'mailcharset',
'mailencoding',
'sociaddthis',
'socifacebook',
'socifacebookuser',
'socitwitter',
'socitwitteruser',
'socilinkedin',
'socilinkedinuser',
'socigoogle',
'socigoogleuser'
),
'conditions'=> array(
'id'=>1
)
));
我想序列化为json形式。 我的目标是在我的cakephp应用程序中的某处获得其中一个值。例如,在布局,控制器,模型或视图或组件中。
我看到了一些关于json的信息。例如,我红了,我必须在我的roote.php
中添加它Router::parseExtensions('rss','json');
我加了json。 然后在我的AppController上添加'RequestHandler'作为组件。
public $components = array(
'Acl',
'Auth' => array(
// For the ACL
'authorize' => array(
'Actions' => array('actionPath' => 'controllers')
),
'authError' => 'Pensiez-vous réellement que vous étiez autorisés à voir cela ?',
// Mets des condition au niveau de la validation d'authentificate
// Contient l'ensemble des methode d'authentification
'authenticate' => array(
// Mehtode Form est utilisée
'Form' => array(
// Defini les paramêtre scope. Ici défini que le compte doit est actif
'scope'=> array('User.active' =>1)
)
)
),
'Session',
'Ctrl',
'RequestHandler' // Ajouté pour jSon
);
但是现在,我不知道如何序列化$ configs以及如何使用序列化的json数据。
有些人有例子,totu,帮助?
非常感谢大家
答案 0 :(得分:0)
序列化对象以在视图中使用它是没有意义的。由于您添加了json-router,因此您似乎希望将响应作为json对象发送到客户端,而不是在视图文件中使用它。 在那种情况下,这很容易。在您的控制器操作中,只需执行
public function getConfigAsJson() {
$config = $this->Config->find('first', ...etc...);
return new CakeResponse(array('body' => $config, 'type' => 'json'));
}
这根本不需要任何视图文件。如果您有REST服务或想要使用从客户端到服务器的ajax调用,那么很有用。