Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将变量从控制器传递到块_Php_Magento_Magento 1.9_Magento 1.4 - Fatal编程技术网

Php 如何将变量从控制器传递到块

Php 如何将变量从控制器传递到块,php,magento,magento-1.9,magento-1.4,Php,Magento,Magento 1.9,Magento 1.4,嗨,我遇到了一个错误,将变量从控制器传递到块。我正在尝试做一个搜索功能 错误消息: 致命错误:调用上的成员函数setCustomerRegistries() 非宾语 E:\xampp\htdocs\magento2\app\code\local\Mdg\Giftregistry\controllers\SearchController.php 第27行 控制器 <?php class Mdg_Giftregistry_SearchController extends Mage_Core_C

嗨,我遇到了一个错误,将变量从控制器传递到块。我正在尝试做一个搜索功能

错误消息:

致命错误:调用上的成员函数setCustomerRegistries() 非宾语 E:\xampp\htdocs\magento2\app\code\local\Mdg\Giftregistry\controllers\SearchController.php 第27行

控制器

<?php
class Mdg_Giftregistry_SearchController extends Mage_Core_Controller_Front_Action{

    public function indexAction(){
        $this->loadLayout();
        $this->renderLayout();
        return $this;
    }
    public function resultsAction(){
        $this->loadLayout();

        if ($searchParams = $this->getRequest()->getParam('search_params')) {

            $results = Mage::getModel('mdg_giftregistry/entity')->getCollection();

            if($searchParams['type']){
                $results->addFieldToFilter('type_id', $searchParams['type']);
            }

            if($searchParams['date']){
                $results->addFieldToFilter('event_date', $searchParams['date']);
            }

            if($searchParams['location']){
                $results->addFieldToFilter('event_location', $searchParams['location']);
            }
            $this->getLayout()->getBlock('mdg_giftregistry.search.results')->setCustomerRegistries($results);
        }

        $this->renderLayout();
        return $this;
    }


}

布局XML

<?xml version="1.0"?>
<layout version="0.1.0">
    <mdg_giftregistry_index_index>
        <reference name="root">
            <action method="setTemplate"><template>page/1column.phtml</template></action>
        </reference>
        <reference name="content">
            <block name="giftregistry.list" type="mdg_giftregistry/list" template="mdg/list.phtml" as="giftregistry_list"/>
        </reference>
    </mdg_giftregistry_index_index>

    <mdg_giftregistry_index_new>
        <reference name="content">
            <block name="giftregistry.new" type="core/template" template="mdg/new.phtml" as="giftregistry_new"/>
        </reference>
    </mdg_giftregistry_index_new>

    <mdg_giftregistry_index_edit>
        <reference name="content">
            <block name="giftregistry.edit" type="core/template" template="mdg/edit.phtml" as="giftregistry_edit"/>
        </reference>
    </mdg_giftregistry_index_edit>

    <mdg_giftregistry_view_view>
        <reference name="content">
            <block name="giftregistry.view" type="core/template" template="mdg/view.phtml" as="giftregistry_view"/>
        </reference>
    </mdg_giftregistry_view_view>

    <mdg_giftregistry_search_index>
        <reference name="content">
            <block name="giftregistry.search" type="core/template" template="mdg/search.phtml" as="giftregistry_search"/>
        </reference>
    </mdg_giftregistry_search_index>

    <mdg_giftregistry_search_results>
        <reference name="content">
            <block name="giftregistry.results" type="mdg_giftregistry/list" template="mdg/list.phtml"/>
        </reference>
    </mdg_giftregistry_search_results>

    <catalog_product_view translate="label">
        <reference name="content">
            <reference name="product.info">
                <block type="mdg_giftregistry/add" name="registry.add" as="registry_add" template="mdg/add_to_registry.phtml" />
            </reference>
        </reference>
    </catalog_product_view>
</layout>

第/1页column.phtml

试试这个解决方案。换行

$this->getLayout()->getBlock('mdg_giftregistry.search.results')->setCustomerRegistries($results);


E:\xampp\htdocs\magento2\app\code\local\Mdg\Giftregistry\controllers\SearchController.php中,第27行是什么样子的。“$this->getLayout()->getBlock('mdg_giftregistry.search.results')->setCustomerRegistries($results);”您可以显示模块布局xml文件的代码吗?您可以发布setCustomerRegistries的代码吗。我实际上只是在学习Magento错误消失了,但是集合没有过滤它没有将$results传递给模板在您的块中,只需调用这个
$this->getCustomerRegistries()我在.phtml文件中调用它。我的php块代码上的函数不会有冲突吗?代码发布在top上。请将块中现有函数的名称更改为任何其他名称。要从控制器获取数据,您需要使用相同的getter/setter方法。
<?xml version="1.0"?>
<layout version="0.1.0">
    <mdg_giftregistry_index_index>
        <reference name="root">
            <action method="setTemplate"><template>page/1column.phtml</template></action>
        </reference>
        <reference name="content">
            <block name="giftregistry.list" type="mdg_giftregistry/list" template="mdg/list.phtml" as="giftregistry_list"/>
        </reference>
    </mdg_giftregistry_index_index>

    <mdg_giftregistry_index_new>
        <reference name="content">
            <block name="giftregistry.new" type="core/template" template="mdg/new.phtml" as="giftregistry_new"/>
        </reference>
    </mdg_giftregistry_index_new>

    <mdg_giftregistry_index_edit>
        <reference name="content">
            <block name="giftregistry.edit" type="core/template" template="mdg/edit.phtml" as="giftregistry_edit"/>
        </reference>
    </mdg_giftregistry_index_edit>

    <mdg_giftregistry_view_view>
        <reference name="content">
            <block name="giftregistry.view" type="core/template" template="mdg/view.phtml" as="giftregistry_view"/>
        </reference>
    </mdg_giftregistry_view_view>

    <mdg_giftregistry_search_index>
        <reference name="content">
            <block name="giftregistry.search" type="core/template" template="mdg/search.phtml" as="giftregistry_search"/>
        </reference>
    </mdg_giftregistry_search_index>

    <mdg_giftregistry_search_results>
        <reference name="content">
            <block name="giftregistry.results" type="mdg_giftregistry/list" template="mdg/list.phtml"/>
        </reference>
    </mdg_giftregistry_search_results>

    <catalog_product_view translate="label">
        <reference name="content">
            <reference name="product.info">
                <block type="mdg_giftregistry/add" name="registry.add" as="registry_add" template="mdg/add_to_registry.phtml" />
            </reference>
        </reference>
    </catalog_product_view>
</layout>
$this->getLayout()->getBlock('mdg_giftregistry.search.results')->setCustomerRegistries($results);
$this->getLayout()->getBlock('giftregistry.results')->setCustomerRegistries($results);