这个方法在管理控制器(Grid Serializer)中的位置是什么?

时间:2013-07-10 08:03:20

标签: magento

    <?php

class Excellence_Manager_Adminhtml_ManagerController extends Mage_Adminhtml_Controller_action
{

    public function customerAction(){
        $this->loadLayout();
        $this->getLayout()->getBlock('customer.grid')
        ->setCustomers($this->getRequest()->getPost('customers', null));
        $this->renderLayout();
    }

我正在关注this网格序列化器tute。我只是无法理解这个setCustomers来自哪里?

即使在其他tutes中,我也看到了setClent(),setDog()等。但是get或者它不在数据库中。我认为不在布局中。请帮助谢谢。

    <manager_adminhtml_manager_customer>
   <block type="core/text_list" name="root" output="toHtml">
       <block type="manager/adminhtml_manager_edit_tab_grid" name="customer.grid"/>
       <block type="adminhtml/widget_grid_serializer" name="grid_serializer">
           <reference name="grid_serializer">
               <action method="initSerializerBlock">
                   <grid_block_name>customer.grid</grid_block_name>
                   <data_callback>getSelectedCustomers</data_callback>
                   <hidden_input_name>links[customers]</hidden_input_name>
                   <reload_param_name>customers</reload_param_name>
               </action>
               <action method="addColumnInputName">
                   <input_name>position</input_name>
               </action>
           </reference>
       </block>
   </block>

我发现它不是来自hidden_​​input_name或reload_param_name。

1 个答案:

答案 0 :(得分:0)

__set() is run when writing data to inaccessible properties.

__get() is utilized for reading data from inaccessible properties.

Magento实现了所谓的“魔术方法”来设置对象中的数据。 他们实施了__set__get这些被调用的方法。找到setCustomers(),并使用这些方法执行setData('customers', "YOUR_VALUE");