我是 Craft 的新手(来自 Laravel),在尝试为使用 pluginfactory.io 创建的插件路由到控制器操作时遇到 404 错误。插件安装没有问题,但我似乎找不到执行控制器操作的方法。
这是相关的目录结构
├── composer.json
├── config
│ ├── app.php
│ ├── db.php
│ ├── general.php
│ ├── license.key
│ ├── redactor
│ └── routes.php
├── modules
│ └── Module.php
├── plugins
│ └── signup
│ ├── composer.json
│ └── src
│ ├── Signup.php
│ ├── controllers
│ │ ├── EnrollmentController.php
│ ├── models
│ │ ├── Enrollment.php
│ │ └── Settings.php
我已经尝试了我的 EnrollmentController 的默认控制器路由:http://localhost:8080/actions/signup/enrollment/index使用 /plugin/controller/action 格式,并且请求永远不会到达控制器。当我尝试创建自定义模块时遇到了同样的问题。
这是我的 EnrollmentController 的代码
namespace wolff\signup\controllers;
use wolff\signup\Enrollment;
use Craft;
use craft\web\Controller;
class EnrollmentController extends Controller
{
protected $allowAnonymous = true;
public function actionIndex()
{
$result = 'Welcome to the EnrollmentController actionIndex() method';
die($result);
}
这是 404 的堆栈跟踪
yii\base\InvalidRouteException: Unable to resolve the request "signup/enrollment/index". in /Applications/MAMP/htdocs/craft/vendor/yiisoft/yii2/base/Module.php:537
Stack trace:
#0 /Applications/MAMP/htdocs/craft/vendor/craftcms/cms/src/web/Application.php(299): yii\base\Module->runAction('signup/enrollme...', Array)
#1 /Applications/MAMP/htdocs/craft/vendor/craftcms/cms/src/web/Application.php(566): craft\web\Application->runAction('signup/enrollme...', Array)
#2 /Applications/MAMP/htdocs/craft/vendor/craftcms/cms/src/web/Application.php(278): craft\web\Application->_processActionRequest(Object(craft\web\Request))
#3 /Applications/MAMP/htdocs/craft/vendor/yiisoft/yii2/base/Application.php(386): craft\web\Application->handleRequest(Object(craft\web\Request))
#4 /Applications/MAMP/htdocs/craft/web/index.php(21): yii\base\Application->run()
#5 {main}
Next yii\web\NotFoundHttpException: Page not found. in /Applications/MAMP/htdocs/craft/vendor/craftcms/cms/src/web/Application.php:570
Stack trace:
#0 /Applications/MAMP/htdocs/craft/vendor/craftcms/cms/src/web/Application.php(278): craft\web\Application->_processActionRequest(Object(craft\web\Request))
#1 /Applications/MAMP/htdocs/craft/vendor/yiisoft/yii2/base/Application.php(386): craft\web\Application->handleRequest(Object(craft\web\Request))
#2 /Applications/MAMP/htdocs/craft/web/index.php(21): yii\base\Application->run()
#3 {main}