codeigniter 4 如何制作菜单栏链接

Posted

技术标签:

【中文标题】codeigniter 4 如何制作菜单栏链接【英文标题】:codeigniter 4 how to make menu bar links 【发布时间】:2021-02-14 21:20:29 【问题描述】:

我是 CodeIgniter 的初学者。我想知道如何将一个页面链接到另一个页面。我试着喜欢这个。我得到了错误 404 - 未找到文件 对不起!我似乎找不到您要查找的页面。

到目前为止我尝试过的内容附在下面。 查看页面:-

<li><a href="<?php echo site_url('aboutus') ?>">Aboutus</a></li>
<li><a href="<?php echo site_url('contactus') ?>">Contactus</a></li>

控制器页面

public function index()
    
        return view('index');
    

    public function aboutus()
    
        return view('about');
    

    public function contactus()
    
        return view('contact');
    

当页面加载时,在索引页面索引中调用,我做了关于我有问题的链接

这里有什么问题。

【问题讨论】:

localhost:8080/index.php/home/aboutus 像这样链接主页 【参考方案1】:
<a href="<?php echo base_url('controller/function')?>"></a>
or
<a href="<?php echo site_url('controller/function')?>"></a>

然后将您的链接更改为:-

<li><a href="<?php echo site_url('controller/aboutus') ?>">Aboutus</a></li>
<li><a href="<?php echo site_url('controller/contactus') ?>">Contactus</a></li>

【讨论】:

this->load->helper('url');我添加了我的错误。 'url' 里面放哪个 url @hari dran in marcogmonteiro 回答你解决了,但你必须从中删除 index.php。 $this->load->helper() 在 CodeIgniter 4 中无效。请改用 helper()。此外,URL 助手是系统自动加载的,所以您不必自己加载。 $routes->get('/', 'Home::index'); $routes->add('aboutus', 'App\Controllers\Home::aboutus'); $routes->add('contactus', 'App\Controllers\Home::contactus');怎么了【参考方案2】:

您需要注册路线。在应用程序配置下打开Routes.php 文件并注册路由以访问您的控制器方法。

例子

$routes->add('aboutus', 'App\Controllers\TheClassName::aboutus');

TheClassName 更改为 aboutus 方法所在的类的名称

【讨论】:

我改变了,但仍然输出 url 看起来像这样 localhost:8080/index.php/home/aboutus 。我需要删除 index.php $routes->get('/', 'Home::index'); $routes->add('aboutus', 'App\Controllers\Home::aboutus'); $routes->add('contactus', 'App\Controllers\Home::contactus');怎么了 打开Config文件夹下的App.php,设置indexPage = ''; 通过上面的路由,需要访问这样的页面localhost:8080/aboutus【参考方案3】:

您的代码缺少一个非常重要的东西,即您的控制器的名称。

假设您有一个名为 site 的控制器,所有这些功能都在其中。在这种情况下,您的代码应如下所示:

class site extends CI_Controller

    public function index()
    
        return view('index');
    

    public function aboutus()
    
        return view('about');
    

    public function contactus()
    
        return view('contact');
    


那么你所有的链接应该是这样的:

<li><a href="<?php echo site_url('site/aboutus') ?>">Aboutus</a></li>
<li><a href="<?php echo site_url('site/contactus') ?>">Contactus</a></li>

如果您想从 url 中删除控制器名称,则需要查看 codeigniter 提供的路由功能。

【讨论】:

ya.sir。我的控制器名称是 home。 Aboutus 现在可以使用了,但 url 看起来像 localhost:8080/index.php/home/aboutus $routes->get('/', 'Home::index'); $routes->add('aboutus', 'App\Controllers\Home::aboutus'); $routes->add('contactus', 'App\Controllers\Home::contactus');怎么了 @haridran 这真的取决于,我不知道 OP 是使用 ci3 还是 4。因为没有关于它的信息。因此我把它省略了。

以上是关于codeigniter 4 如何制作菜单栏链接的主要内容,如果未能解决你的问题,请参考以下文章

如何通过html和css完成下拉菜单的制作

如何在导航栏中制作 Bootstrap 4 全宽下拉菜单?

如何使用 Bootstrap 4 和 Angular 7 在导航栏中制作多级下拉菜单

如何制作显示在屏幕中间的半圆形菜单?

如何使用 angularjs 操作导航栏引导程序 4 崩溃?

Codeigniter - 在表单编辑中未显示数组时制作下拉菜单