我正在研究Symfony2 API,只是为了学习东西。我想要实现的是:
从DB加载模板这是有效的。 现在我正在尝试从浏览器中的数据库输出检索到的模板,这就是我正在努力的地方。
所以我的Doctrine正在工作并重新复制模板,我还创建了TemplateResponse,我想用Doctrine array key =>填充每个construc变量。值。
TemplateResponse文件:
<?php
namespace Boltmail\UserBundle\BoltmailResponse;
class TemplateResponse {
/**
* @var integer
*/
public $templates;
/**
* @param $templates
*/
public function __construct(
$templates
){
$this->templates = $templates;
}
}
TemplateListFactory:
<?php
namespace Boltmail\UserBundle\BoltmailFactory;
use Boltmail\UserBundle\BoltmailRepository\TemplateListRepository;
use Boltmail\UserBundle\BoltmailResponse\TemplateResponse;
use Boltmail\UserBundle\BoltmailResponse\Response;
use Symfony\Component\HttpFoundation\Request;
class TemplateListFactory {
public $template;
public function __construct(
TemplateListRepository $templateListRepository
){
$this->template = $templateListRepository;
}
public function build()
{
$template = $this->template->searchTemplate();
if ($template) {
return new TemplateResponse (
$template
);
} else {
return new Response(
false,
'Something went wrong'
);
}
}
}
错误:
Notice: Trying to get property of non-object
if ($template) {
return new TemplateResponse (
$template->temp_id,
$template->title,
$template->content,
$template->author
所以我相信Doctrine会将数据作为一个数组返回,我想我正在尝试访问它的值,好像它们是对象,这就是我收到此错误的原因。
我还尝试在填充TemplateReponse之前在if语句中使用foreach循环,但这也没有用。我知道如何才能做到这一点。
好的,我做了一些改动,得到了我追求的结果:
结果:
{
templates: [
{
temp_id: "0",
title: "New Template",
content: "I am new template blehhhhhh",
author: "Michael"
},
{
temp_id: "1",
title: "Liverpool Template",
content: "You Will Never Walk Alone",
author: "Bob"
}
]
}