【问题标题】:Namespace issue in Model in Laravel - Package DevelopmentLaravel 模型中的命名空间问题 - 包开发
【发布时间】:2020-02-25 00:00:51
【问题描述】:

我正在laravel 中开发一个包,它使用模型进行 CRUD 操作。

我也把它放在packagist 中,但是当我尝试在 laravel 应用程序中安装它并访问包定义的路由时,它说

找不到类“Zusamarehan\Tourify\Model\Tourifies”

以下是我的包的文件夹结构

  • 热汉
    • 游览
        • 资产
        • 数据库
        • http
        • 型号
          • Tourifies.php
        • 资源
        • 路线
        • TourifyServiceProvider.php
        • composer.json

以下是我Tourifies.php的内容

<?php
namespace Zusamarehan\Tourify\Model;

use Illuminate\Database\Eloquent\Model;

class Tourifies extends Model
{

}

以下是我的composer.json文件

{
    "name": "zusamarehan/tourify",
    "description": "A Package for adding Tour/Help to your Laravel Projects.",
    "keywords": ["laravel", "tour", "tourify", "product-tour", "product-help"],
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "zusamarehan",
            "email": "zrehan286@gmail.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.3.0"
    },
    "extra": {
        "laravel": {
            "providers": [
                "Zusamarehan\\tourify\\TourifyServiceProvider"
            ]
        }
    },
    "autoload": {
        "psr-4": {
            "Zusamarehan\\tourify\\": "src"
        }
    }
}

我想模型类没有加载?我不确定。

谁能指出错误?

【问题讨论】:

    标签: php laravel namespaces composer-php


    【解决方案1】:

    您的类中的命名空间使用Zusamarehan\Tourify,但是,在您的composer.json 中,您使用了Zusamarehan\tourify。这些应该匹配。

    您需要更新您的 composer.json 文件,以便命名空间使用正确的大小写:

    {
        "name": "zusamarehan/tourify",
        "description": "A Package for adding Tour/Help to your Laravel Projects.",
        "keywords": ["laravel", "tour", "tourify", "product-tour", "product-help"],
        "type": "library",
        "license": "MIT",
        "authors": [
            {
                "name": "zusamarehan",
                "email": "zrehan286@gmail.com"
            }
        ],
        "minimum-stability": "dev",
        "require": {
            "php": ">=5.3.0"
        },
        "extra": {
            "laravel": {
                "providers": [
                    "Zusamarehan\\Tourify\\TourifyServiceProvider"
                ]
            }
        },
        "autoload": {
            "psr-4": {
                "Zusamarehan\\Tourify\\": "src"
            }
        }
    }
    
    

    【讨论】:

    • 让我回去试试
    【解决方案2】:

    您的composer.json 中的"Zusamarehan\\tourify\\": "src" 是错误的。需要大写 T。看看我的,我在src 之后还有一个尾随/,所以你也可以试试。 您在提供程序中具有相同的小写t

    【讨论】:

    猜你喜欢
    • 2012-02-16
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 2017-12-13
    • 2014-09-03
    • 1970-01-01
    相关资源
    最近更新 更多