将变量从控制器传递到php中查看

时间:2017-03-14 09:23:19

标签: php

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

的HomeController

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

我希望能够在我的视图中访问$some_var变量

查看

<h3>$some_var</h3>

3 个答案:

答案 0 :(得分:1)

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

   <?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;
}

这样可以在$variable文件

中访问index.php

答案 1 :(得分:0)

您将了解view()函数如何加载以下数据的基本概念。

阅读本手册codeigniter如何从here.加载视图文件以及$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()函数的详细信息来自here.

答案 2 :(得分:-1)

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