如何通过事件观察者模式将自定义字段值保存到magento数据库

如何通过事件观察者模式将自定义字段值保存到magento数据库,magento,events,design-patterns,Magento,Events,Design Patterns,我正在通过事件观察者模式在Magento时事通讯订户块中添加额外字段 下面是我为Observer.php编写的代码: <?php class Scandi_Newsletter_Model_Observer { public function newsletterSubscriberSaveBefore(Varien_Event_Observer $observer){ $subscriber = $observer->getEvent()->getSub

我正在通过
事件观察者
模式在Magento
时事通讯订户
块中添加额外字段

下面是我为
Observer.php
编写的代码:

<?php

class Scandi_Newsletter_Model_Observer
{
    public function newsletterSubscriberSaveBefore(Varien_Event_Observer $observer){

     $subscriber = $observer->getEvent()->getSubscriber();
     $name = Mage::app()->getRequest()->getParam('subscriber_name');
     $subscriber->setSubscriberName($name);
     $model = Mage::getModel('scandi/newsletter')->setSubscriberName($name)->save();
     //$subscriber->save();
     return $this;
    }
}

?>
任何帮助都将不胜感激

如何在数据库中保存订阅服务器名称

各位好,

我能够打印订户名称,我的错误是在subscriber.phtml文件中添加订户名称时丢失了订户名称。现在,我在Observer.php中使用以下代码:-

<?php

class Scandi_Newsletter_Model_Observer
{
    public function newsletterSubscriberSaveBefore(Varien_Event_Observer $observer) {

    $subscriber = $observer->getEvent()->getSubscriber();
    $name = Mage::app()->getRequest()->getParam('subscriber_name');
 $subscriber->setSubscriberName($name);
 $subscriber->save(); 
    print_r($subscriber->getData());

?>


现在有谁能帮助我如何在数据库中保存此值?我还需要在管理面板时事通讯网格中显示此值。

我希望,您的安装程序不工作,应该是

<resources>
            <scandi_newsletter_setup>
                <setup>
                    <module>Amit_Custommodule</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </scandi_newsletter_setup>
            <custommoule_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </custommoule_read>
            <scandi_newsletter_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </scandi_newsletter_write>

    </resources>

Amit_自定义模块
核心单元设置
核心读取
核心写入

是的,我可以将值保存在数据库中。这是更新后的代码

软件包名称:-Scandi

    $installer = $this;

    $installer->startSetup();

    $installer->run("
     ALTER TABLE {$installer->getTable('newsletter_subscriber')}
     ADD (`name` TEXT NULL) ");
     $installer->endSetup();

?>
模块名称:时事通讯

    $installer = $this;

    $installer->startSetup();

    $installer->run("
     ALTER TABLE {$installer->getTable('newsletter_subscriber')}
     ADD (`name` TEXT NULL) ");
     $installer->endSetup();

?>
1.)首先通过添加所需的额外字段来更新subscriber.phtml

2.)在
    $installer = $this;

    $installer->startSetup();

    $installer->run("
     ALTER TABLE {$installer->getTable('newsletter_subscriber')}
     ADD (`name` TEXT NULL) ");
     $installer->endSetup();

?>
magento\app\code\local\Scandi\Newsletter\Model\Observer.php:-

 <?php

    class Scandi_Newsletter_Model_Observer
    {
        public function newsletterSubscriberSaveBefore(Varien_Event_Observer $observer) {

        $subscriber = $observer->getEvent()->getSubscriber();
        $name = Mage::app()->getRequest()->getParam('subscriber_name');
     $subscriber->setSubscriberName($name);
    ?>
    $installer = $this;

    $installer->startSetup();

    $installer->run("
     ALTER TABLE {$installer->getTable('newsletter_subscriber')}
     ADD (`name` TEXT NULL) ");
     $installer->endSetup();

?>

4.)上面发布的Config.xml

试着打印
$model->getData()
,看看你是否得到
订户的名字
Hey Slimshaddyyy。谢谢你的回复。我尝试了你的建议,但不幸的是,它显示了以下错误:-致命错误:在第11行的/home/eatloca8/public\u html/app/code/local/Scandi/Newsletter/Model/Observer.php中对非对象调用成员函数setSubscriberName(),是否可以发布错误?shweta_kaushish,把你的配置。xml@AmitBera:-上面的文章是通过添加config.xml代码和其他进度步骤编辑的。请看!!Amit,感谢您的回复。安装程序工作正常&我能够将值保存在数据库中。现在剩下的唯一部分是如何在新闻稿订阅服务器的后端网格中显示此值…对此有何想法??
    $installer = $this;

    $installer->startSetup();

    $installer->run("
     ALTER TABLE {$installer->getTable('newsletter_subscriber')}
     ADD (`name` TEXT NULL) ");
     $installer->endSetup();

?>