0

私はMVCとphpの初心者です。現在、magento app/code/core/Mage/Review/Model/Review.php にあります

コードを追加します。

 public function mgtest(){
        return 'hello world!';
    }

クラスで

class Mage_Review_Model_Review extends Mage_Core_Model_Abstract
{ }

Magento cmsページで、コードを追加します:

 {{block type="core/template" name="review" template="catalog/product/reviewall.phtml"}}

URLキーはreview.htmlです

次に、ファイル reviewall.phtml(app/design/frontend/default/mytheme/template/catalog/product/reviewall.phtml) を追加します。

次に、そのファイルにテスト コードを追加します。

<?php echo $this->mgtest();?>

URLにアクセスしたとき。mysiteurl/review.html. hello world の出力はありません。なぜ?ありがとうございました。それを修正する方法は?モデル内のすべてのファイルは何をしますか? 関数を呼び出す場合は、phtml ファイルを使用します。私はどのように行いますか?

4

1 に答える 1

0

新しい機能を追加するためにコアを編集しないでください。ディレクトリにすべての追加/変更を追加しapp/code/localます。

あなたの既存のコードには、次の 2 つの問題があります。

  • CMS ページのブロックのタイプは である必要がreview/reviewあり、 ではありませんcore/template
  • 関数を として作成しましmatest()たが、次のように呼び出しますmgtest()

$thisreviewall.phtml から参照し、matest存在する/存在する必要があるメソッドを呼び出しているため、CMS ブロック タイプは である必要があります。Review_Block_ReviewCore_Block_Templatereview/review

matest$this を使用してテンプレート ファイルからモデルを直接参照することはできないため、Model にメソッドを配置しているようですが、Block に配置してください。

Magento での処理方法がわかったら、独自のカスタム モジュールを (ローカル ディレクトリに) 作成することをお勧めします。

于 2013-02-24T17:54:24.393 に答える