我正在尝试从saveAction中打印一个变量,这样我就可以看到该变量的值是多少。我正在学习Zend2,我继续在其他开发人员停止的地方,所以我试图更好地理解它...这个应用程序也在使用Doctrin。
我有这个动作会将一些数据保存到数据库中。
public function saveAction() {
$view = new ViewModel();
$logedUser = $this->getLogedUser();
print_r($_POST);
$shopId = (int) $this->params()->fromPost('shop_id', null);
print_r($shopId);
$shop = $this->getServiceLocator()
->get('Catalog\Model\Shop')
->getRepository()
->findOneBy(array('id' => $shopId, 'user' => $logedUser->getId()));
print_r($shop);
return $logedUser;
return $shop;
return $view;
}
我可以打印post和变量shopId中的值,但print_r($shop);
没有显示任何内容。我怎样才能看到商店变量的价值?
答案 0 :(得分:1)
试试这个
echo $shop->__toString();
答案 1 :(得分:0)
您好,你可能想试试这个:
print_r($this->getAllParams());
而不是使用$_POST
答案 2 :(得分:0)
$shop = $this->getServiceLocator()
->get('Catalog\Model\Shop')
->findOneBy(array('id' => $shopId, 'user' => $logedUser->getId()));
请从您的代码中删除 - > getRepository(),然后您将获得结果。
答案 3 :(得分:0)
此时我们不知道服务/工厂'目录\模型\商店'的作用。我认为它是实体经理。查询对我来说没问题2.但是有3次返回是错误的!
您的视图在$shop;
视图文件中永远不会有$view;
和.phtml
变量。在ZF2中,你可以像这样返回一个数组:
return array('shop' => $shop, 'logedUser' => $logedUser);
这会将这些变量保存在save.phtml
中
在/yourmodule/view/yourcontroller/save.phtml
如果您想自己设置.phtml
匹配,那么您确实可以使用您在代码中尝试过的视图模型,那么该过程就是一个小问题。它看起来像这样:
$viewModel = new ViewModel(array(
'logedUser' => $logedUser,
'shop' => $shop,
));
$viewModel->setTemplate('yourmodul/yourcontroller/save');
return $this->getContainerViewModel($viewModel);
完成后,您只需访问save.phtml
模板文件中的变量即可:
<?php echo $shop->getSomething(); ?>
您没有向我们展示Shop实体,但我认为它有getName()
,__toString()
等方法。您可以在视图中调用这些Object方法。
如果您仍然无法理解zf2的mvc概念,您可能需要重新阅读zf2文档。
答案 4 :(得分:0)
您必须向我们展示Catalog \ Model \ Shop以及您使用什么查询来获取数据。您的查询是否有可能因为无法从数据库中获取任何内容而获得null?您的模型中是否有任何类型的检查,以确定您的查询结果是否良好?