Laravel 组件 class 由于组件在不同文件夹中创建而忽略

Laravel component class ignore due to component create in different folder

<?php

namespace App\View\Components;

use Illuminate\View\Component;

class Admin.-newclubform extends Component

{
    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\Contracts\View\View|\Closure|string
     */
    public function render()
    {echo "demo";
        return view('components.admin.-newclubform');
    }
}

我用php artisan make:component Admin.Newclubform 命令在管理文件夹中创建组件。 视图部分有效,但 class 被忽略。

php artisan make:component Admin.Newclubform 创建所有 class 和视图。 class 由 artisan 命令生成

如@shaedrich 所述,Admin.Newclubform 不是有效的 class 名称。

所以创建子文件夹 运行 命令如下

php artisan make:component Admin/NewClubForm

这将在里面创建文件

App\View\Components\Admin\NewClubForm

所以你的组件看起来像这样

<?php

namespace App\View\Components\Admin;

use Illuminate\View\Component;

class NewClubForm extends Component
{
    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\Contracts\View\View|\Closure|string
     */
    public function render()
    {
        return view('components.admin.new-club-form');
    }
}

然后就可以这样访问了

<x-admin.newclubform></x-admin.newclubform>