Dans le framework ThinkPHP, la fonction jump peut être implémentée en utilisant la méthode de redirection. Étant donné que cette méthode est définie dans la classe de base du contrôleur, le contrôleur peut l'appeler directement pour implémenter la fonction de saut immédiat. La méthode de redirection accepte deux paramètres : $url et $params.
Parmi eux, $url est l'adresse URL redirigée. Le paramètre peut être une simple chaîne, un tableau ou une valeur d'ancrage commençant par #. Si le paramètre $Url est un tableau, il peut contenir des alias de règles de routage, des noms de contrôleurs, des noms d'opérations et des listes de paramètres. Autrement dit, les tableaux peuvent obtenir différents effets de saut en spécifiant différents éléments.
$params est un paramètre facultatif qui peut être utilisé pour spécifier les paramètres à ajouter à la requête GET. Ce paramètre n'est valide que s'il n'y a pas de chaîne de requête (c'est-à-dire "?") dans l'URL. Si l'URL contient déjà une chaîne de requête, $params sera ignoré.
Ce qui suit est un exemple d'utilisation de la méthode de redirection :
class IndexController extends Controller { public function index() { // 直接跳转到百度首页 $this->redirect('http://www.baidu.com'); } public function test() { // 跳转到当前控制器Index操作中 $this->redirect('Index/index'); // 跳转到Home控制器中的Index操作 $this->redirect('Home/Index/index'); // 跳转并传递$name参数 $this->redirect('Index/index', array('name' => 'ThinkPHP')); // 跳转并传递多个参数 $this->redirect('Index/index', array('name' => 'ThinkPHP', 'id' => 100)); } }
Dans l'exemple de code ci-dessus, la méthode de redirection est utilisée pour implémenter diverses fonctions de saut. Par exemple, $this->redirect('http://www.baidu.com');
est une opération qui accède directement à la page d'accueil de Baidu. $this->redirect('Index/index');
passe à l'opération d'indexation actuelle du contrôleur. $this->redirect('Home/Index/index');
fait référence à l'opération Index dans le contrôleur Home. $this->redirect('Index/index', array('name' => 'ThinkPHP'));
saute et passe le paramètre $name. $this->redirect('Index/index', array('name' => 'ThinkPHP', 'id' => 100));
consiste à sauter et à transmettre plusieurs paramètres. $this->redirect('http://www.baidu.com');
就是直接跳转到百度首页的操作。 $this->redirect('Index/index');
则是跳转到当前控制器Index操作中。 $this->redirect('Home/Index/index');
指的是跳转到Home控制器中的Index操作。 $this->redirect('Index/index', array('name' => 'ThinkPHP'));
则是跳转并传递$name参数。 $this->redirect('Index/index', array('name' => 'ThinkPHP', 'id' => 100));
是跳转并传递多个参数。
除了将网页重定向到指定URL,redirect方法也可以将其重定向到路由规则的别名。在这种情况下,$url参数应该是一个路由别名,而不是URL地址。例如,假设我们有以下路由规则:
// 路由规则定义 'link/:id' => 'Links/link',
我们可以在控制器中使用路由规则别名“link”调用redirect方法,从而跳转到链接页面。例如:
class LinksController extends Controller { public function link() { $id = I('get.id'); $link = M('Links')->where(array('id'=>$id))->find(); // 验证链接是否存在 if ($link) { // 跳转到重定义的路由规则上 $this->redirect('link/'.$id); } else { $this->error('链接不存在!'); } } }
在上述代码示例中,我们在Links控制器的link方法中使用了重定向到重定义的路由规则别名的方法。 "$this->redirect('link/'.$id);"
"$this->redirect('link/'.$id);"
utilise un alias de routage et transmet des paramètres pour accéder à la page de lien. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!