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

Yii2 advanced后台自定义Custom Widget报Not Found Error如何解决

Yii2后台自定义Widget报"Not found"错误排查方案
  • 文件名大小写问题
    Yii2遵循PSR-4自动加载规范,类名为Contact,对应文件名必须首字母大写,你当前的文件名为contact.php,需要重命名为Contact.php,路径改为manage\components\Contact.php。
  • 命名空间引入问题
    在view/layouts/main.php中调用Widget前,需要先引入对应类:
use manage\components\Contact;
// 调用写法
echo Contact::widget(['message' => '测试内容']);

如果没有提前use,调用时需要写全命名空间:

echo \manage\components\Contact::widget(['message' => '测试内容']);
  • 自动加载别名配置问题
    检查后台应用的配置文件(通常是manage/config/bootstrap.php或者全局公共配置common/config/bootstrap.php)中是否配置了@manage别名,确保命名空间和目录映射正确:
Yii::setAlias('@manage', 你的manage目录实际物理路径);
// 例:如果manage目录和frontend、backend同级,写法为
Yii::setAlias('@manage', dirname(dirname(__DIR__)) . '/manage');
  • Widget视图文件缺失问题
    你在run()方法中调用了$this->render('contact'),默认会在Widget所在目录下的views子目录中查找视图文件,需要确认你已经创建了manage/components/views/contact.php文件,内容可先写测试代码验证:
<?= $message ?>

如果不需要单独视图文件,可暂时修改run()方法直接返回内容,排查是否是视图导致的错误:

public function run()
{
    return Html::encode($this->message);
}
  • 文件权限问题
    如果是Linux/Mac环境,需要确认Contact.php以及对应的视图文件的读取权限,确保Web服务运行用户有对应文件的读权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:45:05