programing

반사예외:클래스 클래스 이름이 없습니다. Laravel

subpage 2023. 8. 7. 22:34
반응형

반사예외:클래스 클래스 이름이 없습니다. Laravel

바로 타이핑을 합니다.php artisan db:seed 명령어

다음과 같은 오류가 발생합니다.

]
. "UserTableSeeder"입니다.

root@dd-desktop:/opt/lampp/htdocs/dd/laravel# php artisan db:seed

나의 여기, 의나입니다.UserTableSeeder.php&DatabaseSeeder.php페이지입니다.

UserTableSeeder.php

<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class UserTableSeeder extends Seeder
{    
    public function run()
    {
        DB::table('users')->delete();
        User::create(array(
        'name'     => 'Chris Sevilleja',
        'username' => 'sevilayha',
        'email'    => 'chris@scotch.io',
        'password' => Hash::make('awesome'),
        ));
    }    
}

데이터베이스씨더.php

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Eloquent::unguard();
        $this->call('UserTableSeeder');
    }
}

링크를 디자인 및 개발 로그인 페이지에 참조합니다.이 문제를 해결하는 데 도움을 주십시오.감사해요.

수행을 합니다.composer update,그리고나서composer dump-autoload.

의 내용으로 문제가 해결되지 않으면 php 파일에 대한 프로젝트 관련 경로가 포함되도록 파일의 를 변경합니다.

"autoload-dev": {
    "classmap": [
        "tests/TestCase.php",
        "database/seeds/UserTableSeeder.php" //include the file with its path here
    ]
}, /** ... */

그리고 곧 다음 단계를 수행합니다.composer dump-autoload그리고 그것은 이제 산들바람처럼 작동할 것입니다!

@JMSamudio 편집

한다면composer dump-autoload찾을 수 . 이하도록 설정하십시오.composer config -g -- disable-tls true.

제 경험으로 볼 때, 호출하려는 클래스에 버그가 있어 컴파일할 수 없는 경우가 대부분입니다.반영되지 않는 클래스를 자체적으로 실행할 수 있는지 확인합니다.

A composer dump-autoload고쳐야 합니다.

나는 이 문제를 가지고 있었고 그것을 함으로써 해결할 수 있었습니다.php artisan config:cache문제는 이전에 이미 해당 명령을 실행했고 나중에 일부 새로운 시드기 클래스를 포함했다는 것입니다.캐시된 구성이 새 클래스를 인식하지 못했습니다.그래서 그 명령어를 다시 실행하는 것이 효과가 있었습니다.

새로운 시드기 클래스를 포함하기 위해 자주 변경하는 자신을 본다면 실행을 고려해 보십시오.php artisan config:clear할 수 에는 이게하원면만변다경테후실수있다습니행할스트렇음한큼하는다▁this있▁run▁as니습▁you수▁testing이를 실행할 수 있습니다.config:cache다시 시작하여 최적의 상태로 다시 실행됩니다.

요.class했습니다.나는 노력했다.composer dump-autoload그리고.php artisan config:clear하지만 그것은 나의 문제를 해결하지 못했습니다.

그리고 나서 저는 문제를 찾기 위해 제 코드를 읽기로 결정했고 문제를 발견했습니다.제 경우 문제는 우리 반에서 쉼표가 빠진 것이었습니다.내 모델 코드 참조:

{
    protected
    $fillable = ['agente_id', 'matter_id', 'amendment_id', 'tipo_id'];

    public
    $rules = [
        'agente_id' => 'required', // <= See the comma
        'tipo_id' => 'required'
    ];

    public
    $niceNames = [
        'agente_id' => 'Membro', // <= This comma is missing on my code
        'tipo_id' => 'Membro'
    ];
}

대문자를 확인하십시오!

호스트 시스템(윈도우즈 또는 Mac)은 기본적으로 대소문자를 구분하지 않으며, 홈스테드는 이 동작을 상속합니다.반면 프로덕션 서버는 대소문자를 구분합니다.

ClassNotFound 예외가 발생할 때마다 다음을 확인합니다.

  1. 철자법
  2. 네임스페이스
  3. 대문자화

어떤 이유로 나는 뛰어야만 했습니다.composer dumpautoload -o 플래그 공지플그래-o즉, 최적화를 의미합니다.왜 그것만 작동하는지 모르겠지만 한번 해보세요.누군가에게 도움이 될 수도 있습니다.

composer dump-autoload
php artisan config:clear
php artisan cache:clear

이것은 틀림없이 효과가 있을 것입니다.만약 그렇지 않다면, 당신은 해야 합니다.

composer update

그런 다음, 앞서 언급한 명령을 수행합니다.

이름 공간에 할당해야 찾을 수 있습니다.

namespace App\Http\Controllers;

문제가 에 의해 해결되지 않는 경우composer dump-autoload새로 만든 클래스가 아닙니다.

클래스의 구문 오류와 클래스의 특성도 확인합니다.제 경우, 특성에 구문 오류가 있었지만,ReflectionException대신 해당 특성을 사용하여 실제 클래스에 대해 표시되었습니다.

시드기 클래스 파일을 찾을 때 컴포저 덤프-자동 로드를 실행할 수 있습니다.모델을 다시 실행할 때 모델을 찾을 때 시드기 파일 자체에서 모델을 참조할 수 있습니다.이렇게.

use App\{Model};

다음 명령을 사용해 보십시오.

php artisan db:seed --class=DatabaseSeeder

이 있는 했습니다.ReflectionException: Class config does not exist

나는새것를을(운)를 했습니다..env공백이 있는 변수입니다. 중입니다.php artisan config:clear게 아무나 말해줬어요..env는 공이있변다수둘로합러니로 합니다."s의

이것과 내 애플리케이션이 다시 작동한다고 말했습니까, 여전히 라라벨 홈스테드에서 개발 중이므로 구성을 확인할 필요가 없습니다(5.4).

저는 수업을 재현했고, 효과가 있었습니다.한 후 실행합니다.php artisan make:seeder ModelTableSeeder .ㅠㅠcomposer dump-autoload저한테는 효과가 없었어요

당신은 글을 써 볼 수 있습니다.appuse 문자대, 그까니러App나를 위해 일했습니다.

메시지 " 적으류메시지오일"ReflectionException: Class app does not exist연결을 닫는 것을 잊으면 애벌레 테스트에 나타납니다.

또는 에는 setUp 또는 tearDown 함수를 을 닫는 .parent::setUp그리고.parent::tearDown

    public function setUp()
    {
        parent::setUp();
    }

    public function tearDown()
    {
        parent::tearDown();
    }

psr-0을 사용하는 경우 클래스 이름에 밑줄이 포함되어 있지 않은지 확인합니다.

사용자 에 도달하려고 할 때 이 했습니다.RouteServiceProvider

  • 클래스의 네임스페이스가 잘못되었습니다.
  • 클래스 파일의 파일 경로가 정확합니다.
  • "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "RouteServiceProvider
  • 은 " " 입니다.$router->group(['namespace' ...])에 시대에RouteServiceProvider틀렸습니다.

RouteServiceProvider경로 파일에 지정된 상대 컨트롤러 경로가 이제 올바르게 해결되었기 때문에 이 문제를 해결했습니다.

파일/폴더 권한 확인

저는 오늘 이 오류로 인해 어려움을 겪었지만 캐시, 구성, 자동 로드 삭제가 전혀 도움이 되지 않았습니다.혼란을 가중시키는 것은 웹 요청에 의해 시작된 경우 오류가 발생했지만 tinker에서 클래스에 액세스하는 것은 정상적으로 작동했습니다.

오타, 구문 오류, 잘못된 네임스페이스를 확인한 후 파일 권한 문제라는 것을 알게 되었습니다.제 수업이 들어 있는 폴더와 파일에 적절한 권한이 없어서 이 오류를 발생시켰습니다.제가 가지고 있던 잘못된 권한 레벨은 771(폴더)과 660(파일)이었는데, 775와 664로 변경하여 작동할 수 있었습니다.

여러 가지 동작에 대한 제 이해로는 명령줄에서 실행할 때 필요한 모든 권한을 가진 사용자로 파일을 읽고 있었지만 웹에서 시작할 때는 "다른" 권한 그룹을 사용하여 아무것도 할 수 없다는 것입니다.

이것을 이 질문에 대한 답으로 받아들이지 마세요.같은 버그를 가진 다른 사람들에게 도움이 되지만 여기에 언급된 답이 그들에게 효과가 없다면요.저는 여기에 언급된 모든 솔루션도 시도해 보았습니다.하지만 제 문제는 제가 사용한 네임스페이스에 있었습니다.경로가 잘못되었습니다.

사용한 네임스페이스는 다음과 같습니다.

namespace App\Http\Controllers;

하지만 실제로 컨트롤러는 'FrontEnd'라는 폴더 안에 있습니다.

솔루션은 네임스페이스를 다음으로 변경하는 것입니다.

namespace App\Http\Controllers\Frontend;

새로운 Laravel 사용자의 경우 이름 공간을 추가하는 것을 잊는 것이 일반적인 실수입니다.

경로/웹.vmdk

use App\Http\Controllers\CompanyController;

app/Http/컨트롤러/CompanyController.php

namespace App\Http\Controllers;

라라벨 9를 사용합니다.

composer dump-autoload 

이것으로 해결할 수 있습니다.

composer update 

위의 명령은 나에게 효과가 있었습니다.

라벨에서 새 마이그레이션을 수행할 때마다 새로 고쳐야 합니다.classmapcomposer.jsonvmdk 파일

언급URL : https://stackoverflow.com/questions/32475892/reflectionexception-class-classname-does-not-exist-laravel

반응형