実装に間違いがあるかもしれませんが、コードを見ずに言うことはできません。それにもかかわらず、私は試してみるつもりです。そのチュートリアルは私にはうまく見えますが、私はコードを実行していないので、わかりません。私はあなたが何かを見逃したかもしれないと思う傾向があります。グリッドで作業する&タブは、時代の最中に特に繊細なものになります。
私には2つのことのように聞こえます。どちらかのように聞こえます
)モデルデータがレジストリに保存されていません。これは、コードのこの部分に問題があることを意味します。
<?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」は、実際にお使いのモデルの属性名の一つであることを確認する必要があります。コードは言う
ルック。テストモデルを作成したときに属性名を変更しましたが、ここで変更を忘れましたか?これらの値を適宜変更してください。
あなたの問題解決に役立つことを願っています。がんばろう!