我创建了 laravel 包并在其他项目中需要我的包。我在项目模型中使用包特征。但我收到此错误 => 未找到特征

Posted

技术标签:

【中文标题】我创建了 laravel 包并在其他项目中需要我的包。我在项目模型中使用包特征。但我收到此错误 => 未找到特征【英文标题】:I created laravel package and required my package in other project.I use package trait in project model. But i get this error => Trait not found 【发布时间】:2020-03-01 20:33:48 【问题描述】:

我创建了 laravel 包并在其他项目中需要我的包。我在项目模型中使用包特征。

但我得到这个错误 =>

Symfony\Component\Debug\Exception\FatalErrorException : 特性 'Encryption\Src\Encryptable' 未找到

我加载包github你可以看到这个链接=>

https://github.com/kablanfatih/encryption


    "name": "kablanfatih/encryption",
    "description": "A package for automatically encrypting and decrypting Eloquent attributes in Laravel , based on configuration settings.",
    "type": "library",
    "license": "MIT",
    "authors": [
        
            "name": "kablanfatih",
            "email": "kablanfatih34@gmail.com"
        
    ],
    "minimum-stability": "dev",
    "require": ,
    "autoload": 
        "psr-4": 
            "kablanfatih\\encryption\\": "../encryption"
        
    ,
    "autoload-dev": 
        "psr-4": 
            "kablanfatih\\encryption\\": "../encryption/",
            "Tests\\": "tests"
        
    ,
    "extra": 
        "laravel": 
            "providers": [
                "Barryvdh\\Debugbar\\ServiceProvider"
            ],
            "aliases": 
                "Debugbar": "Barryvdh\\Debugbar\\Facade"
            
        
    ,
    "require-dev": 
        "barryvdh/laravel-debugbar": "^3.2@dev"
    

<?php

namespace App\Models;

use Encryption\Src\Encryptable;
use Illuminate\Database\Eloquent\Model;

class Question extends Model

    use Encryptable;
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'questions';

    /**
     * The attributes that are mass assignable.
     * @var array
     */
    protected $fillable = [
        'question', 'incorrect1', 'incorrect2', 'incorrect3', 'incorrect4', 'correct'
    ];

    /**
     * The attributes that are encrypted.
     *
     * @var array
     */
    protected $encrypted = [
        'question'
    ];

【问题讨论】:

您能否更新问题以包括特征和调用它的类? 你做了composer dumpautoload吗? 我做了 composer dump-autoload , php artisan 优化和 config:clear but notsolved 【参考方案1】:

您的命名空间不正确。 您应该将 composer.json 中的 "kablanfatih\\encryption\\" 替换为 Encryption\\

【讨论】:

感谢命名空间更改和修复

以上是关于我创建了 laravel 包并在其他项目中需要我的包。我在项目模型中使用包特征。但我收到此错误 => 未找到特征的主要内容,如果未能解决你的问题,请参考以下文章

端口 8000 没有响应。其他人会

如何开发 Laravel 扩展包并发布到 Composer

Laravel 网站上的虚假帐户创建预防

在 Laravel 中安全地编辑第三方作曲家(供应商)包并防止在发布新版本的包时丢失自定义更改

在州内创建工厂并在 Laravel 中获取自身的 id

idea 打包一个项目为jar包并在另一个项目中引用该jar包