4

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

4

6 回答 6

14

如果要在视图中显示视图名称:

echo $_ci_view;

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

于 2012-10-27T22:54:57.313 回答
2

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

$thisFile = pathinfo(__FILE__, PATHINFO_FILENAME);
$thisViewName = trim($thisFile, '.php');
echo $thisFile; // view_filename.php
echo $thisViewName; // view_filename
于 2012-08-30T20:30:15.620 回答
2

我认为没有办法获取视图。您可以做的最接近的是获取被路由到的动作和控制器。

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

$this->router->fetch_method();

获取当前操作。

参考

于 2013-09-17T04:57:18.830 回答
2

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

控制器:

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

然后要在您的视图中访问,您可以使用以下命令检索视图名称:

<?php echo $viewName ?>
//produces 'home_view'
于 2012-08-30T19:34:10.263 回答
0

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

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

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

于 2018-12-24T18:07:18.010 回答
-1

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

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

对于当前视图使用:

<?= $_ci_view; ?>
于 2014-03-16T11:38:06.800 回答