gpt4 book ai didi

codeigniter 使用 redirect()

转载 作者:行者123 更新时间:2023-12-02 07:51:20 25 4
gpt4 key购买 nike

我在每个需要加载我的应用程序主视图的函数中使用 redirect()(来自 uri 帮助程序)。它重定向到相同的功能。我的目标是获得相同的干净 uri,即使我使用页面的功能(调用其他 Controller )也是如此。这是好的做法吗?我什么时候应该使用 redirect()?有没有其他解决方案可以得到类似的结果?

这是一些需要澄清的代码。

这是一个 Controller :

<?php

class Main_controller extends Controller
{
function index()
{
$this->load->view(page);
}

function page_feature()
{
/* some stuff */
redirect('main_controller.php','refresh');
}
}

使用这条路由规则:

$route['([a-z-A-Z1-9_]+)'] = "main_controller";

uri 是这样的:myapp.com/something在此页面上,有调用(提交时)main_controller(或其他 Controller )的其他功能的功能,例如表单:

<form action="myapp.com/another_controller/method" method="post">

在此查询“/another_controller/method”的末尾,我使用 redirect('main_controller') 来显示包含新数据的 View ,并保留 uri“myapp.com/something”而不是“myapp.com”/另一个 Controller /方法”。

我想知道这是好事还是坏事,为什么。

最佳答案

像这样使用重定向是不好的做法;你基本上加倍了服务器请求的数量。

如果您不想在 URL 中包含函数名称,只需将表单 POST 传递给 Controller ​​ index() 函数,并根据一些标准(例如从表单 POST 传递的内容)调用您需要的函数数据:

<form action="myapp.com/controller_name" method="post">

Controller :

function index(){
if(!empty($_POST['some_form_data'])){
$this->page_feature();
}
else{
$this->load->view('page');
}
}
function page_feature(){
/* some stuff */
$this->load->view('page_feature');
}

您可能还想查看 _remap()功能。这样,额外的 uri 段就不会被视为函数调用。

关于codeigniter 使用 redirect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com