You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter 4:如何在控制器中获取URI占位符的收件箱邮件编号?

解决CodeIgniter 4中控制器获取收件箱邮件编号的问题

你只需要在控制器的readMail方法中定义对应的参数,就能接收路由传递过来的邮件编号,具体操作如下:

1. 修改控制器方法的参数定义

把你当前控制器里的参数占位符替换成实际变量名(比如$mailNumber),还可以加上类型声明(因为路由限制了是数字(:num),用int更严谨):

public function readMail(int $mailNumber)
{
    $getDetailsMessage = $this->mailboxInbox->getMessage($mailNumber);

    $data = [
        'title' => 'Baca Email Ci 4',
        'inbox' => $getDetailsMessage
    ];
    return view('readmail', $data);
}

2. 原理说明

  • 你的路由$routes->get('/mailbox/baca-inbox/(:num)', 'Mailbox::readMail/$1');中,(:num)是路由占位符,用来匹配URL中的数字部分;$1表示把第一个捕获到的参数(也就是邮件编号)传递给控制器readMail方法的第一个参数。
  • 视图中通过$getMail->getNumber()生成的编号会拼接在URL里,用户点击链接时,这个编号会被路由捕获并传递给控制器方法的参数。

这样修改后,控制器就能正确获取到邮件编号,进而调用模型方法获取消息详情了。

内容的提问来源于stack exchange,提问作者Pitik Kuning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:40:33