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;
} 

post と変数 shopId から値を出力できますが、print_r($shop);何も表示されません。ショップ変数の値を確認するにはどうすればよいですか?

4

5 に答える 5

0

この時点では、Service/Factory 'Catalog\Model\Shop' が何をするのかわかりません。エンティティマネージャーだと思います。クエリは私には問題ないように見えます 2.しかし、3つのリターンがあるのは間違っています!

あなたのビューは、ビューファイル$shop;に変数も$view;変数も持ちません。.phtmlZF2 では、次のように配列をビューに返すことができます。

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 に答える
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 と、どのクエリを使用しているかを示す必要があります。データベースから何も取得できないため、クエリが null になる可能性はありますか? クエリの結果が適切であることを確認するために、モデルに何らかのチェックがありますか?

于 2013-10-28T09:25:05.073 に答える
0

こんにちは、あなたはこれを試してみたいかもしれません:

print_r($this->getAllParams());

使用する代わりに$_POST

于 2013-10-28T06:25:03.917 に答える