Rumah  >  Soal Jawab  >  teks badan

Ralat Laravel dalam persekitaran pengeluaran: kelas "App\Models\review" tidak ditemui

Saya mempunyai 3 model dalam aplikasi Laravel saya: Filem, pengguna, ulasan

Komen:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Review extends Model
{
    use HasFactory;

    protected $hidden = ['user_id','movie_id','created_at','updated_at'];

    public function movie(){
        return $this->belongsTo(Movie::class);
    }

    public function user(){
        return $this->belongsTo(User::class);
    }
}

Filem:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Movie extends Model
{
    use HasFactory;

    protected $hidden = ['created_at','updated_at'];

    public function review(){
        return $this->hasMany(review::class);
    }

    public function getAvg()
    {
        return $this->review()->average('rating');
    }

    public function count()
    {
        return $this->review()->count();
    }

    public function getBestRating()
    {
        return $this->review()->max('rating');
    }

    public function getWorstRating()
    {
        return $this->review()->min('rating');
    }
}

Pengguna:

<?php

namespace AppModels;

// use IlluminateContractsAuthMust VerifyEmail;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
use LaravelSanctumHasApiTokens;
use TymonJWTAuthContractsJWTSubject;

class User extends Authenticatable implements JWTSubject
{
    use HasApiTokens, HasFactory, Notifiable;

    public function review()
    {
        return $this->hasMany(Review::class);
    }
}

Pertanyaan tidak sah

$movies = Movie::has('review')->with('review.user')->get();

Dalam localhost ia berfungsi dengan baik. Tetapi selepas digunakan dalam digitalOcean ia mengembalikan "Kelas "AppModelsreview" tidak ditemui"

Saya mencuba konsol pada digitalOcean:

> Movie::has('review')->get()
[!] Aliasing 'Movie' to 'AppModelsMovie' for this Tinker session.

 ERROR Class "AppModelsreview" not found in vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php on line 775.

Tetapi selepas menjalankan arahan ini dalam sesi yang sama:

Review::all()

Filem sebelumnya::has('review') berfungsi dengan baik.

Kenapa ni? Adakah saya terlepas sesuatu?

P粉029057928P粉029057928320 hari yang lalu403

membalas semua(1)saya akan balas

  • P粉124070451

    P粉1240704512023-12-29 00:44:04

    Anda berkemungkinan besar memuatkan kelas daripada sistem fail sensitif huruf besar-besaran, itulah sebabnya isu ini menyebabkan masalah. Walaupun nama kelas PHP tidak sensitif huruf besar. Seperti yang terdapat dalam kenyataan, ini dianggap sebagai amalan yang baik

    Anda perlu menukar baris ini:

    return $this->hasMany(review::class);

    kepada

    return $this->hasMany(Review::class);

    balas
    0
  • Batalbalas