gpt4 book ai didi

php - classes/controllers// 中的 Kohana 3.2 Controller

转载 作者:搜寻专家 更新时间:2023-10-31 21:29:55 26 4
gpt4 key购买 nike

我已经看到很多与这个问题非常相似的问题(例如 this onethis ),但我的问题是我的 Controller 位于 controllers 文件夹。我的目录结构如下所示:

classes/
controllers/
admin/
manageMemberProfile/
memberList.php
memberProfileInfo.php
editMemberProfile.php
manageCompanyProfile/
........
member/
........

guest/
........

models/
........

请注意,我已经在我提供的链接中完成了解决方案(并设法使其工作),但它仅适用于 controllers 文件夹内的文件夹中的 Controller 。我想要的是用这种目录设置来调用我的 Controller 。我对 kohana 3.2 中的路由很陌生,所以我真的不知道如何解决这个问题,我也阅读了他们关于路由的文档,但我仍然无法解决我的这个问题。

最佳答案

链接中所述的答案也适用于此处。您只需要添加子目录,例如像这样

Route::set('admin_manageMembersProfile', 'admin/manageMembersProfile(/<controller>)')
->defaults(array(
'directory' => 'admin/manageMembersProfile',
'controller' => 'defaultController',
'action' => 'defaultAction',
));

当然,对每个子目录都这样做会很有压力。所以你可以使用 Lambda/Callback route logic :

Route::set('admin', function($uri) {
$directories = array('manageMembersProfile', 'manageOthers');
if (preg_match('#^admin/('.implode('|', $directories).')(/[^/]+)*#i', $uri, $match)) {
$subdirectory = $match[1];
if (array_key_exists(2, $match)) {
$controller = trim($match[2], '/');
} else {
$controller = 'defaultController';
}
if (array_key_exists(3, $match)) {
$action = trim($match[3], '/');
} else {
$action = 'defaultAction';
}
return array(
'directory' => 'admin/'.$subdirectory,
'controller' => $controller,
'action' => $action,
);
}
});

这只是一个非常基本的示例,但我希望它能向您展示如何以这种方式处理路由。

关于php - classes/controllers/<subfolder>/<subfolder> 中的 Kohana 3.2 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31096782/

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