在php中将变量从控制器传递到视图

在php中将变量从控制器传递到视图,php,Php,为了学习,我正在构建一个php框架(MVC)。我需要帮助将变量从控制器发送到视图 HomeController <?php class HomeController{ public function home() { $some_var = "Do Something"; return view("home.php",compact('some_var')); } } ?> 您将从以下内容了解如何查看()函数加载数据 阅读本手

为了学习,我正在构建一个php框架(MVC)。我需要帮助将变量从控制器发送到视图

HomeController

<?php
class HomeController{
    public function home()
    {
        $some_var = "Do Something";
        return view("home.php",compact('some_var'));
    }
}
?>

您将从以下内容了解如何
查看()
函数加载数据

阅读本手册,了解codeigniter如何从中加载视图文件,以及如何在内部
$this->load->view('view',$data)
view()函数的作用参见下面的代码

public function view($view, $vars = array(), $return = FALSE)
{
    return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}
public function view()
函数的详细信息来自


要在html文件中访问控制器中的变量,在包含html文件之前,使用php的
extract
函数从
compact
函数中获取变量

   <?php

// Controller Class

class Controller
{
    public function someMethod()
    {
        $variable = "SomeVar";
        return view("home.php",compact('variable'));
    }
}

// template loader

function view($page,$variables=[])
{
    if(count($variables))
    {
        extract($variables);
    }
    require $page;
}

您的问题是什么?建议您使用SMARTY模板传递控制器数据以查看文件。有关如何将SMARTY与您的代码集成的信息,请参见此链接。这是laravel框架还是您尝试构建自定义框架?@Md.Sahadat Hossain自定义框架如果您不仅删除一些代码,而且还解释他和您的代码中发生了什么,那将是非常棒的。它有助于问题作者和其他用户。如果它能起作用就好了,但在我看来,知道为什么更重要。
public function view($view, $vars = array(), $return = FALSE)
{
    return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}
   <?php

// Controller Class

class Controller
{
    public function someMethod()
    {
        $variable = "SomeVar";
        return view("home.php",compact('variable'));
    }
}

// template loader

function view($page,$variables=[])
{
    if(count($variables))
    {
        extract($variables);
    }
    require $page;
}