如何在CodeIgniter中获取当前视图名称


How get the current view name in CodeIgniter?

如何获取当前显示视图的名称以传递给另一个函数?

如果您想在视图中显示视图名称:

echo $_ci_view;

另请参阅print_r(get_defined_vars()),您将从CI中看到许多有趣的变量。

您可以将视图的名称传递给视图。

控制器:

$data = array('viewName' => 'home_view');
$this->load->view($data['viewName'], $data);

然后要访问您的视图,您可以使用检索视图名称

<?php echo $viewName ?>
//produces 'home_view'

如何获取当前显示视图的名称?

$thisFile = pathinfo(__FILE__, PATHINFO_FILENAME);
$thisViewName = trim($thisFile, '.php');
echo $thisFile; // view_filename.php
echo $thisViewName; // view_filename

我认为没有办法获取视图。你能做的最接近的事情就是获取被路由到的动作和控制器。

您可以使用CodeIgniter提供的Router类来实现这一点。使用

$this->router->fetch_method();

以获取当前操作。

参考

您可以简单地使用PHP,在视图someview.php中写下:

<?php echo basename(__FILE__, ".php"); ?> //prints: someview

其他人建议<?=$_ci_view?>注意,它会打印出视图的整个文件名:someview.php,而不仅仅是视图名someview

对于那些需要知道当前类名的人,可以在视图中使用此命令来获取其父类:

<?= $this->router->class ?>

对于当前视图使用:

<?= $_ci_view; ?>