Saya cuba memanjangkan model Pengguna dengan jadual lain (Profil) untuk mendapatkan gambar profil, lokasi, dsb.
Bolehkah saya mengatasi fungsi index()
model Pengguna untuk melakukan ini?
Kod model semasa:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; protected $fillable = [ 'name', 'email', 'password', 'user_group' ]; protected $hidden = [ 'password', 'remember_token', ]; protected $casts = [ 'email_verified_at' => 'datetime', ]; }
Apa yang anda mahu lakukan adalah dalam
User
模型和新的Profile
模型之间建立关系。为此,您首先需要创建一个模型Profile
及其关联的 Tabbleprofiles
php artisan make:model Profile --migration
Fail dalam
databasemigrations
中应该有一个名为2022_11_28_223831_create_profiles_table.php
Sekarang anda perlu menambah kunci asing untuk menunjukkan pengguna yang mempunyai profil ini.
Sekarang tambah fungsi berikut dalam model pengguna anda
Dalam model profil anda
Larikan
php artisan migrate
dan semuanya harus berfungsi seperti yang diharapkanJika anda ingin menguji sama ada hubungan itu berfungsi seperti yang diharapkan, buat kes ujian baharu
php artisan make:test ProfileUserRelationTest
di
testsFeatureProfileUserRelationTest.php
Kini anda boleh berlari
php artisan test
untuk melihat sama ada semuanya baik-baik saja.AwasIni akan menyegarkan pangkalan data anda! Jadi jangan uji dalam pengeluaran.
Keluaran sepatutnya kelihatan seperti ini
Ketahui lebih lanjut tentang perhubungan dalam Laravel: https://laravel.com/docs/9.x/eloquent-relationships
Ketahui lebih lanjut tentang migrasi: https://laravel.com/docs/9.x/migrations
Alternatif