찾다

 >  Q&A  >  본문

Laravel이 잘못된 테이블을 생성합니다.

우리 시스템(기본적으로 사용자가 소셜 미디어 게시물을 다운로드하는 시스템)을 사용할 모든 사용자의 다운로드 기록이 필요합니다. ID, timestamp, download_historyuser_id 필드를 포함하는 "DownloadHistory" 모델을 만들었습니다. 사용자를 생성하면 DownloadHistory 인스턴스가 자동으로 생성되어야 하며 사용자 테이블은 내 RegisterController에 표시된 대로 새로 생성된 DownloadHistory의 ID를 포함하도록 download_history_id 필드를 갖도록 업데이트되어야 합니다. 으아아아

문제는: 나에게는 이해가 되지 않는 오류가 발생합니다:

이 말이 안 되는 이유는

download_history를 만든 적이 없지만 download_history를 만들었기 때문입니다. 그렇다면 이것은 무엇인가요? ? ? 내 DownloadHistory 모델은 다음과 같습니다: 으아아아

테이블을 만들기 위한 마이그레이션은 다음과 같습니다.

$downloadHistory = DownloadHistory::create([
    'user_id' => $user->id
]);

DB::table('users')->where('id', $user->id)->update(['download_history_id' => $downloadHistory->id]);

P粉546257913P粉546257913226일 전344

모든 응답(2)나는 대답할 것이다

  • P粉021708275

    P粉0217082752024-04-01 20:50:00

    모델에 protected $table = 'download_history';

    추가 으아아아

    회신하다
    0
  • P粉068510991

    P粉0685109912024-04-01 14:32:36

    Laravel에서는 테이블 이름이 복수형으로 가정됩니다.

    참조: https://laravel.com/docs/9.x /eloquent#테이블 이름

    이 문제를 해결하려면 모델에서 $table 속성을 사용하세요.

    으아악

    회신하다
    0
  • 취소회신하다