0

このチュートリアル(特にレッスン6と7)を使用して、Magento用の独自のバックエンドグリッドを作成しました:http ://www.pierrefay.com/magento-developper-guide-howto-tutorial-5

すべてが正常に動作します。グリッドの新しいデータエントリを作成できます。エントリをクリックすると、VarienFormが再び表示されますが、すべてのテキストフィールドが空です。これは、Magentoがすべてのテキストフィールドを編集したいと考えているようです。しかし、実際には、最初にエントリデータを表示したいと思います。ただし、空のフィールドのみが表示されます。

誰かがここで私を助けることができますか?どうもありがとう!

4

1 に答える 1

1

実装に問題がある可能性のあることはたくさんありますが、コードを見ずに言うことは不可能です。それにもかかわらず、私は試してみるつもりです。そのチュートリアルは私には問題ないように見えますが、コードを実行していないため、確信が持てません。私はあなたが何かを逃したかもしれないと思う傾向があります。グリッドとタブでの作業は、最良の場合は特にデリケートな場合があります。

それは2つのことの1つであるように私には聞こえます。どちらかのように聞こえます

A)モデルデータがレジストリに保存されていません。これは、問題がコードのこの部分にあることを意味します。

<?php
class Pfay_Test_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action
{
    ...
    public function editAction()
    {
        $testId = $this->getRequest()->getParam('id');
        $testModel = Mage::getModel('test/test')->load($testId);
        if ($testModel->getId() || $testId == 0)
        {
            Mage::register('test_data', $testModel);
        }

コードのこのセクションが行うことは、選択したモデルをMagentoのレジストリに「登録」することです。コードの後半で、次のように呼び出されることがわかります。

$form->setValues(Mage::registry('test_data')->getData());

フォームフィールドに入力します。

上記のコードに次のようなコマンドを入れてみてください。

var_dump($testId);
die();

また

print_r($testModel);
die();

そしてそれを再び実行します。$ testIdが設定されていますか?$ testModelがロードされていますか?レジストリのifステートメントはロードされていますか?そうでない場合は、問題をさかのぼって追跡します。

またはそれはまたかもしれません

B)列名が間違っているため、フォームにデータが事前入力されていません。

コードが言うところを見てください:

<?php
class Pfay_Test_Block_Adminhtml_Test_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
   protected function _prepareForm()
   {
       $form = new Varien_Data_Form();
       $this->setForm($form);
       $fieldset = $form->addFieldset('test_form', array('legend'=>'ref information'));
       $fieldset->addField('nom', 'text',
           array(
               'label' => 'Nom',
               'class' => 'required-entry',
               'required' => true,
               'name' => 'nom',
           )
       );

「nom」が実際にモデルの属性名の1つであることを確認する必要があります。テストモデルを作成したときに属性名を変更しましたが、ここで変更するのを忘れましたか?それに応じてこれらの値を変更してください。

これが問題の解決に役立つことを願っています。幸運を!

于 2012-04-12T01:21:53.963 に答える