我正在构建一个用于学习目的的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>
答案 0 :(得分:1)
要在html文件中访问控制器中的变量,可以在包含html文件之前使用php的compact
函数extract function documentation从extract
函数中获取变量
<?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);
}
}
?>