sourcecode

베이스 테이블 또는 뷰를 찾을 수 없음: 1146 테이블 Larabel 5

copyscript 2023. 1. 15. 17:11
반응형

베이스 테이블 또는 뷰를 찾을 수 없음: 1146 테이블 Larabel 5

Larabel 5를 사용하여 mysql에 데이터를 저장하려고 하면 다른 형식과 save() 메서드는 정상적으로 동작하지만 이 오류는 다음과 같습니다.

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sistemal5.cotizacions' doesn't exist (SQL: insert into `cotizacions` (`customer_id`, `total`, `updated_at`, `created_at`) values (1501, 150.69, 2015-05-11 03:16:25, 2015-05-11 03:16:25))

컨트롤러 스토어 방법은 다음과 같습니다.

public function store(CotFormRequest $request)
    {    
        $quote = new Cotizacion;
        $quote->customer_id = Input::get('data.clientid');
        $quote->total = Input::get('data.totalAftertax');    
        $quote->save();    
    }

제 모델은 다음과 같습니다.

<?php namespace App\Models\Cotizacion;

use Illuminate\Database\Eloquent\Model;


class Cotizacion extends Model {

}

Larabel이 왜 테이블이 코티자션이 아닌 코티자시온인지 이해할 수 없기 때문에 나는 매우 명백한 것을 간과하고 있는 것이 틀림없다.

트러블 슈팅은 어떻게 해야 하나요?

라라벨은 당신이 테이블 이름에 사용한 단어의 복수형을 결정하지 못할 것 같군요.

다음과 같이 모델에 테이블을 지정하기만 하면 됩니다.

class Cotizacion extends Model{
    public $table = "cotizacion";

이행 파일을 확인합니다.Schema::table을 사용하고 있는 경우는 다음과 같습니다.

Schema::table('table_name', function ($table)  {
    // ...
});

새 테이블을 만들려면 Schema::create를 사용해야 합니다.

Schema::create('table_name', function ($table)  {
    // ...
});

5.2에서도 이 문제에 직면했습니다만, 테이블명을 선언할 수 없는 경우는, Request(사용하고 있는 경우)에 잘못된 선언이나 인증 코드의 착오가 있는 것이 원인이라고 생각됩니다.

에러가 다음 문제와 관련이 없는 경우

Laravel은 테이블 이름에 사용한 단어의 복수형을 결정할 수 없습니다.

해결책으로

이 에러가 아직 남았습니다.제 접근법을 시험해 보세요.이 문제는 기본 "AppServiceProvider.php" 또는 해당 응용 프로그램에 대해 특별히 정의된 기타 ServiceProviders 또는 커널에서 찾을 수 있습니다.App\Console의 php

이 에러는 나에게 일어났고, 나는 그것을 일시적으로 해결했지만, 여전히 정확한 출처와 설명을 알 수 없었습니다.

테이블을 이행할 수 없는 주된 문제는 boot() 메서드의 "Permissions Service Provider.php"에서 코드/쿼리가 실행되고 있다는 것입니다.

같은 방법으로 AppServiceProvider의 boot() 메서드에 무언가를 정의했을 수도 있습니다.php 또는 커널에 있습니다.php

따라서 먼저 서비스 프로바이더를 확인하고 잠시 코드를 비활성화한 후 php artisan migrate를 실행하여 코드 변경을 원래대로 되돌립니다.

다음 명령을 실행합니다.

php artisan migrate:refresh --seed

이 문제는 잘못된 철자 또는 정의되지 않은 데이터베이스 이름으로 인해 발생합니다.데이터베이스 이름, 테이블 이름 및 모든 열 이름이 phpmyadmin과 동일한지 확인하십시오.

감사해요.

php artisan migrate 실행 후 이행 = >에서도 이 문제가 발생하였습니다.

"기본 테이블 또는 뷰를 찾을 수 없음: 1146 테이블 포스트가 존재하지 않음"을 해결했습니다.다른 이행 파일에서 "소프트 삭제"를 사용하고 있었습니다.또, 「포스트」테이블의 원래 이행은, 데이타베이스\이행폴더내의 「소프트 삭제」이행 후에 행해지고 있었습니다.그 때문에, 「포스트」테이블의 이름을 변경할 필요가 있었습니다.sts" 마이그레이션 파일 이름을 지정하고 "소프트 삭제" 마이그레이션 전에 저장하여 더 빨리 수행할 수 있습니다.다시 마이그레이션을 수행합니다. => php artician migrate: php --seed 완료.

컨트롤러 메서드에서 사용자 지정 요청을 전달하고 요청 파일이 올바른 구문을 따르지 않거나 테이블 이름이 변경된 경우 이러한 유형의 예외를 통과합니다.예를 들어 보겠습니다.

My Request code.
     public function rules()
        {
            return [
                'name' => 'required|unique:posts|max:50',
                'description' => 'required',
            ];
        }

But my table name is todos not posts so that's why it through "Base table or view not found: 1146 Table Laravel 7


    I forgot to change the table name in first index.
     public function rules()
        {
            return [
                'name' => 'required|unique:todos|max:50',
                'description' => 'required',
            ];
        }

언급URL : https://stackoverflow.com/questions/30159257/base-table-or-view-not-found-1146-table-laravel-5

반응형