Php 未定义的属性。无法调用其他页面上的对象属性

Php 未定义的属性。无法调用其他页面上的对象属性,php,model-view-controller,Php,Model View Controller,我开始开发一个简单的MVC应用程序。我在控制器中调用下面的函数 public function show() { if (!isset($_GET['id'])) return call('pages', 'error'); $ingredient = Ingredients::find($_GET['id']); require_once('views/ingredients/show.php'); }

我开始开发一个简单的MVC应用程序。我在控制器中调用下面的函数

public function show()
    {
        if (!isset($_GET['id']))
            return call('pages', 'error');
        $ingredient = Ingredients::find($_GET['id']);
        require_once('views/ingredients/show.php');
    }
我无法访问
$component
对象属性,如
$component->item_id
show.php中的任何属性。但是能够在同一个函数中调用对象属性

我的show.php页面如下所示

这是所需的配料:


这里的问题是,您在一个方法的范围内定义这些函数,同时尝试在另一个方法的范围内访问它们。这是两件不同的事情


要完成类似的任务,您必须在全局范围内声明变量(被认为是错误的做法),或者将其存储在对象属性中。

这里的问题是,您在一个方法的范围内定义这些函数,同时尝试在另一个方法的范围内访问它们。这是两件不同的事情


要完成类似的操作,您必须在全局范围内声明变量(被认为是错误的做法),或者将其存储在对象属性中。

在打印$Component之前是否调用show()函数?是的。我以前调用过该函数。如果我将变量存储在函数中,然后在show.php中打印该变量,就会发生这种情况。从$component=components::find($_GET['id'])获取数据后,抛售$Component,这是否给了所有的价值?让我知道您对cakephp和codeigniter-3都使用标记。您是否以某种方式混合了这两个框架?
components::find()
返回的具体内容是什么?您是否在打印$component之前调用show()函数?是的。我以前调用过该函数。如果我将变量存储在函数中,然后在show.php中打印该变量,就会发生这种情况。从$component=components::find($_GET['id'])获取数据后,抛售$Component,这是否给了所有的价值?让我知道您对cakephp和codeigniter-3都使用标记。您是否以某种方式混合了这两个框架?
components::find()
究竟返回了什么?