我正在通过php学习和编写MVC。我从文件控制器设置了变量的值,我想在文件视图中获取值,但是它不起作用。 我的控制器:
$text = preg_replace("/^\uFEFF/", '', $text);
我的观点list.php:
class BooksController extends Controller
{
function list()
{
$books = $this->model->get_all();
render('view/book/list');
}
}
我的函数渲染:
<?php
var_dump($books);
?>
结果:NULL
我尝试替换:
function render($file_name,$extent="php"){
$file_name = 'view/'.$file_name.'.'.$extent;
if(!file_exists($file_name))
throw new Exception("Can't open file ".$file_name);
require_once $file_name;
}
到
render('view/book/list');//not work
请告诉我,怎么了?
答案 0 :(得分:0)
您要将view / book / list.php传递给
$file_name = 'view/'.$file_name.'.'.$extent;
这将导致$ filename ='view / view / book / list.php.php'
将变量转储到屏幕或日志文件中,将来可能会在这种情况下为您提供帮助。参见http://php.net/manual/en/function.var-dump.php
尝试
render('book/list');
答案 1 :(得分:0)
当view
进入函数渲染并在函数$books
中传递render
时,它有2次。
class BooksController extends Controller
{
function list()
{
$books = $this->model->get_all();
render('book/list',$books);
}
}
然后在您的函数中渲染
function render($file_name,$data,$extent="php"){
$file_name = 'view/'.$file_name.'.'.$extent;
$books = $data;
if(!file_exists($file_name))
throw new Exception("Can't open file ".$file_name);
require_once $file_name;
}