添加服务提供者类后找不到类

Posted

技术标签:

【中文标题】添加服务提供者类后找不到类【英文标题】:Class not found after adding Service Provider class 【发布时间】:2014-10-10 02:52:06 【问题描述】:

我正在尝试扩展 Validator 类。这样我的文本字段在添加空间时不会返回 false。

我正在创建一个类似 app\extension\validation 的文件夹

这是我的 CustomValidation 类

<?php namespace App\Extension\Validation;

 use Illuminate\Validation\Validator;

 class CustomValidation extends Validator

   public function alpha_spaces($attribute, $value, $parameters)
   
    if(preg_match("/^([-a-z0-9_ ])+$/i", $value))
    
        return true;
    
    return false;
   
 

这是同一文件夹中的 ValidationServiceProvider 类

<?php namespace App\Extension\Validation;

use Illuminate\Support\ServiceProvider;

class ValidationServiceProvider extends ServiceProvider

    public function register()

    public function boot()
    
        $this->app->validator->resolver(function($translator, $data, $rules, $messages)
        
            return new CustomValidation($translator, $data, $rules, $messages);
        );
    

这是我尝试将服务提供者添加到 app.php 时遇到的错误

Class 'App\Extension\Validation\ValidationServiceProvider' not found

我在 app\Extension\Validation 中有类作为 ValidationServiceProvider.php

有谁知道我为什么会遇到这个问题。我整天都被困在这个问题上,我需要别人的帮助。

【问题讨论】:

您是否已将路径添加到您的作曲家自动加载文件并运行composer dump 【参考方案1】:

您需要将文件夹"app/Extension" 添加到composer.jsonautoload &gt; classmap 属性,如下所示:

"autoload": 
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php",
        "app/Extension"
    ]
 

完成此操作后,composer 知道它应该从 "app/Extension" 加载类

然后执行

composer dump-autoload

【讨论】:

非常感谢。这节省了我的时间。

以上是关于添加服务提供者类后找不到类的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统添加网卡后找不到网卡信息

安装完成IIS后找不到IIS Admin Service

T24 安装后找不到类,需要更多配置吗?

部署到 Azure 应用服务后找不到我的 repo 文件

Laravel 5 从包服务提供者注册中间件

iOS10技术之实现通知服务扩展(NotificationServiceExtension)