从动作zend2框架打印变量

时间:2013-10-28 06:19:53

标签: php zend-framework zend-framework2

我正在尝试从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);没有显示任何内容。我怎样才能看到商店变量的价值?

5 个答案:

答案 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?您的模型中是否有任何类型的检查,以确定您的查询结果是否良好?