【问题标题】: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

标签: php class laravel laravel-4 namespaces


【解决方案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

【讨论】:

  • 非常感谢。这节省了我的时间。
猜你喜欢
  • 1970-01-01
  • 2018-11-10
  • 2016-02-14
  • 1970-01-01
  • 2016-01-02
  • 2020-08-02
  • 2016-01-08
  • 2023-04-01
  • 2016-12-08
相关资源
最近更新 更多