<?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。
答案 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");