0

我正在尝试从 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;
} 

我可以打印帖子中的值和变量 shopId,但print_r($shop);不显示任何内容。如何查看 shop 变量的值?

4

5 回答 5

1

Try this

   echo $shop->__toString();
于 2013-10-28T06:34:13.730 回答
0
$shop = $this->getServiceLocator()
->get('Catalog\Model\Shop')
->findOneBy(array('id' => $shopId, 'user' => $logedUser->getId()));

请从您的代码中删除 ->getRepository() ,然后您将获得结果。

于 2013-10-28T06:42:04.917 回答
0

您必须向我们展示什么 Catalog\Model\Shop 以及您使用什么查询来获取数据。您的查询是否有可能因为无法从数据库中获取任何内容而变为空?您的模型中是否有任何类型的检查来确定您的查询结果是否良好?

于 2013-10-28T09:25:05.073 回答
0

你好,你可能想试试这个:

print_r($this->getAllParams());

而不是使用$_POST

于 2013-10-28T06:25:03.917 回答
0

在这一点上,我们不知道 Service/Factory 'Catalog\Model\Shop' 做了什么。我认为它是实体管理器。查询对我来说看起来不错 2。但是有 3 个返回是错误的!

您的视图永远不会在视图文件中包含变量$shop;$view;变量。.phtml在 ZF2 中,您可以像这样将一个数组返回到您的视图中:

return array('shop' => $shop, 'logedUser' => $logedUser);

这会将这些变量保存在您的save.phtml in/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 文档。

于 2013-10-28T08:47:07.250 回答