Php 尝试发布Laravel包时找不到可发布的资源

Php 尝试发布Laravel包时找不到可发布的资源,php,laravel,package,composer-php,Php,Laravel,Package,Composer Php,我的目录设置如下所示: |- packages |-|-- Iezon |---|-- Core |-- Admin |-- src |--|-- database |-----|-- migrations |--------|-- xxxx_xx_xx_xxxxxx_create_admin_panels.php |--|-- Http |----|-- routes.php

我的目录设置如下所示:

|- packages
|-|-- Iezon
|---|-- Core
      |-- Admin
        |-- src
        |--|-- database
        |-----|-- migrations
        |--------|-- xxxx_xx_xx_xxxxxx_create_admin_panels.php
        |--|-- Http
        |----|-- routes.php
        |--|-- Providers
        |-----|-- AdminServiceProvider.php
        |--|-- Resources
        |-----|-- views
namespace Iezon\Core\Admin\Providers;

use Illuminate\Support\ServiceProvider;

class AdminServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->loadRoutesFrom(__DIR__ . '/../Http/routes.php');
        $this->loadViewsFrom (__DIR__ . '/../Resources/views', 'admin');
    }

    public function register()
    {
        $this->publishes([__DIR__ . '/../database/migrations', database_path('migrations')]);
    }

    protected function loadRoutesFrom(string $path)
    {
        require_once $path;
    }
}
"autoload": {
    "psr-4": {
        ...
        "Iezon\\Core\\Admin\\": "packages/Iezon/Core/Admin/src",
        ...
    }
}
我的
AdminServiceProvider.php
如下所示:

|- packages
|-|-- Iezon
|---|-- Core
      |-- Admin
        |-- src
        |--|-- database
        |-----|-- migrations
        |--------|-- xxxx_xx_xx_xxxxxx_create_admin_panels.php
        |--|-- Http
        |----|-- routes.php
        |--|-- Providers
        |-----|-- AdminServiceProvider.php
        |--|-- Resources
        |-----|-- views
namespace Iezon\Core\Admin\Providers;

use Illuminate\Support\ServiceProvider;

class AdminServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->loadRoutesFrom(__DIR__ . '/../Http/routes.php');
        $this->loadViewsFrom (__DIR__ . '/../Resources/views', 'admin');
    }

    public function register()
    {
        $this->publishes([__DIR__ . '/../database/migrations', database_path('migrations')]);
    }

    protected function loadRoutesFrom(string $path)
    {
        require_once $path;
    }
}
"autoload": {
    "psr-4": {
        ...
        "Iezon\\Core\\Admin\\": "packages/Iezon/Core/Admin/src",
        ...
    }
}
我的
composer.json
如下所示:

|- packages
|-|-- Iezon
|---|-- Core
      |-- Admin
        |-- src
        |--|-- database
        |-----|-- migrations
        |--------|-- xxxx_xx_xx_xxxxxx_create_admin_panels.php
        |--|-- Http
        |----|-- routes.php
        |--|-- Providers
        |-----|-- AdminServiceProvider.php
        |--|-- Resources
        |-----|-- views
namespace Iezon\Core\Admin\Providers;

use Illuminate\Support\ServiceProvider;

class AdminServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->loadRoutesFrom(__DIR__ . '/../Http/routes.php');
        $this->loadViewsFrom (__DIR__ . '/../Resources/views', 'admin');
    }

    public function register()
    {
        $this->publishes([__DIR__ . '/../database/migrations', database_path('migrations')]);
    }

    protected function loadRoutesFrom(string $path)
    {
        require_once $path;
    }
}
"autoload": {
    "psr-4": {
        ...
        "Iezon\\Core\\Admin\\": "packages/Iezon/Core/Admin/src",
        ...
    }
}
当我运行
composer dumpautoload
并尝试运行时:

php artisan vendor:publish --provider="Iezon\Core\Admin\Providers\AdminServiceProvider"
我明白了:

找不到可发布的资源

然后,我使用
php artisan vendor:publish
检查它是否存在,但它不显示在提供者列表中。我缺少什么?

$this->publishes(…)
实际上属于
boot
方法中,而不是
寄存器中。此外,您需要传递一个关联数组,但需要传递两个单独的值。最后,当提供程序实际在控制台中运行时,最好只调用
publishes
,如下所示:

|- packages
|-|-- Iezon
|---|-- Core
      |-- Admin
        |-- src
        |--|-- database
        |-----|-- migrations
        |--------|-- xxxx_xx_xx_xxxxxx_create_admin_panels.php
        |--|-- Http
        |----|-- routes.php
        |--|-- Providers
        |-----|-- AdminServiceProvider.php
        |--|-- Resources
        |-----|-- views
namespace Iezon\Core\Admin\Providers;

use Illuminate\Support\ServiceProvider;

class AdminServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->loadRoutesFrom(__DIR__ . '/../Http/routes.php');
        $this->loadViewsFrom (__DIR__ . '/../Resources/views', 'admin');
    }

    public function register()
    {
        $this->publishes([__DIR__ . '/../database/migrations', database_path('migrations')]);
    }

    protected function loadRoutesFrom(string $path)
    {
        require_once $path;
    }
}
"autoload": {
    "psr-4": {
        ...
        "Iezon\\Core\\Admin\\": "packages/Iezon/Core/Admin/src",
        ...
    }
}
if($this->app->runningincole()){
$this->发布([\uuuu DIR\uuuu.'/../database/migrations'=>database\u path('migrations'));
}