我正在阅读Symfony2入门指南,我的问题是:
我有一个包含列的数据库:price,description,id,name 然后在我的控制器中,我获取这些列并通过树枝模板显示它们。 在我的控制器中我做:
public function showAction($id)
{
$product = $this->getDoctrine()
->getRepository('AcmeStoreBundle:Product')
->find($id);
if (!$product) {
throw $this->createNotFoundException(
'No product found for id '.$id
);
}
$price = $product -> getPrice();
$description = $product -> getDescription();
return $this->render(
'AcmeStoreBundle:Store:index.html.twig',
array('id' => $id, 'price' => $price, 'description' => $description)
);
}
我的问题是,我可以更改$ price,$ description来调用它吗......?或者我被迫继续提及这些变量,就像它们在数据库中被命名一样?
基本上,我可以这样做:$foo = $product -> getPrice();
$bar = $product -> getDescription();
然后在我的渲染函数中执行:
return $this->render(
'AcmeStoreBundle:Store:index.html.twig',
array('uniquecode' => $id, 'cost' => $foo, 'message' => $bar)
);
我的问题有两个方面:1)我能做到吗2)这样做是不错的做法?
答案 0 :(得分:4)
更好:
return $this->render('AcmeStoreBundle:Store:index.html.twig', array(
'product' => $product
));
您可以像这样访问twig中的产品属性
{{ product.description }}
为变量使用有意义的名称。变量名必须定义 其内容的确切解释
我在http://codebuild.blogspot.de/2012/02/15-best-practices-of-variable-method.html找到了它,但你可以谷歌搜索变量和方法命名