Berikut ialah cara berbeza untuk mendapatkan nama lajur daripada jadual dalam Laravel.
Andaikan kita mencipta jadual yang dipanggil Pelajar dalam pangkalan data MySQL menggunakan pertanyaan berikut:
CREATE TABLE students( id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(10) NOT NULL, email VARCHAR(15) NOT NULL, created_at VARCHAR(27) NOT NULL, updated_at VARCHAR(27) NOT NULL, address VARCHAR(3) NOT NULL );
Anda boleh mendapatkan butiran lengkapnya menggunakan arahan DESC -
mysql> desc students; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int | NO | PRI | NULL | | | name | varchar(15) | NO | | NULL | | | email | varchar(20) | NO | | NULL | | | created_at | varchar(27) | YES | | NULL | | | updated_at | varchar(27) | YES | | NULL | | | address | varchar(30) | NO | | NULL | | | age | int | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 7 rows in set (0.08 sec)
Menggunakan kelas skema anda boleh membuat dan mengemas kini jadual dalam Laravel. Untuk menggunakan kelas skema, tambahkan kelas berikut pada pengawal anda.
use Illuminate\Support\Facades\Schema;
Berikut ialah contoh yang berfungsi menggunakan kelas skema -
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Schema; class StudentController extends Controller { public function index() { $columns = Schema::getColumnListing('students'); print_r($columns); } }
Keluaran kod di atas adalah seperti berikut.
Array( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
Kelas Model dalam Laravel mewakili jadual dalam pangkalan data. Sebagai contoh, jika anda mempunyai jadual pelajar, nama model ialah pelajar, untuk pengguna, nama model ialah pengguna, dan untuk pekerja, nama model ialah "pekerja". Nama jadual mestilah jamak dan nama model mestilah tunggal. Ini adalah corak yang perlu diikuti, tetapi ini tidak menghalang anda daripada menggunakan konvensyen penamaan pilihan anda untuk nama jadual dan nama model.
Buat model pelajar seperti berikut -
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Student extends Model { use HasFactory; protected $fillable = ['name','email','address']; }
Sekarang gunakan model dalam pengawal anda untuk mendapatkan nama lajur -
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Student; class StudentController extends Controller { public function index() { $student = Student::first(); $table_columns = array_keys(json_decode($student, true)); print_r($table_columns); } }
Keluaran kod di atas ialah.
Array( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
Anda juga boleh menggunakan kelas rupa dan rasa pangkalan data yang ditunjukkan di dalam pengawal -
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class StudentController extends Controller { public function index() { $table = DB::table('students')->get(); $cols = array_keys(json_decode(json_encode($table[0]), true)); print_r($cols); } }
Keluaran kod di atas ialah -
Array ( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
Cara lain untuk mendapatkan lajur menggunakan rupa pangkalan data ialah -
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class StudentController extends Controller { public function index() { $columns_names = []; $tableDet = DB::select("SHOW COLUMNS FROM students"); foreach($tableDet as $column) { $columns_names[$column->Field] = ''; } print_r($columns_names); } }
Keluaran kod di atas ialah.
Array ( [id] => [name] => [email] => [created_at] => [updated_at] => [address] => )
Atas ialah kandungan terperinci Bagaimana untuk memilih semua nama lajur dalam jadual dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!