cari

Rumah  >  Soal Jawab  >  teks badan

Nama fungsi berkaitan Laravel Eloquent

<p>Saya mempunyai dua jadual iaitu "posts" dan "categories". Hubungan antara "siaran" dan "kategori" adalah banyak dengan satu. Oleh itu, kod dalam model kelas "Post" adalah seperti berikut: </p> <pre class="brush:php;toolbar:false;"><?php ruang nama AppModels; gunakan IlluminateDatabaseEloquentFactoriesHasFactory; gunakan IlluminateDatabaseEloquentModel; Kelas Pos memanjangkan Model { gunakan HasFactory; dilindungi $guarded = ['id']; kategori fungsi awam() { pulangkan $this->belongsTo(Kategori::kelas); } }</pre> <p>Menggunakan kod ini, aplikasi berjalan dengan jayanya. </p><p>Masalahnya ialah apabila saya cuba menukar nama fungsi kategori kepada "kategori" dan saya cuba mengakses nama kategori siaran seperti ini: </p><p> <kod>Siaran::first()->kategori->nama</kod>, laravel memberikan ralat seperti ini <kod>Cuba untuk membaca sifat "nama" pada null dalam D:BelajarProgramCODINGANLaravelapplicationcoba-laraveleval() 'd kod.</code></p> <p>(diedit</p> <p>Apabila nama fungsi Eloquent ialah "kategori", "Post::first()->category" mengembalikan kategori siaran. Walau bagaimanapun, apabila saya cuba menukar nama fungsi kepada "kategori" dan mengaksesnya menggunakan "Post::first()->categories", ia mengembalikan null. </p> <p>)</p> <p>Saya cuba menukar nama fungsi berkaitan Eloquent dalam model kelas kategori kepada nama rawak, tetapi saya masih boleh mengaksesnya dan Laravel tidak melaporkan ralat. Kod model kelas kategori adalah seperti berikut: </p> <pre class="brush:php;toolbar:false;"><?php ruang nama AppModels; gunakan IlluminateDatabaseEloquentFactoriesHasFactory; gunakan IlluminateDatabaseEloquentModel; Kategori kelas memanjangkan Model { gunakan HasFactory; dilindungi $guarded = ['id']; siaran fungsi awam(){ pulangkan $this->hasMany(Post::class); } }</pre> <p>Bolehkah sesiapa membantu saya? Mengapa saya boleh menukar nama fungsi Eloquent dalam model kelas kategori tetapi tidak dalam model kelas jawatan? </p>
P粉729198207P粉729198207533 hari yang lalu436

membalas semua(1)saya akan balas

  • P粉330232096

    P粉3302320962023-07-24 00:30:50

    Melakukan perkara berikut seharusnya menyelesaikan masalah:

    public function categories()
    {
        return $this->belongsTo(Category::class, 'category_id', 'id');
    }

    balas
    0
  • Batalbalas