Bagaimana untuk memilih semua nama lajur dalam jadual dalam Laravel?

PHPz
Lepaskan: 2023-08-25 18:52:17
ke hadapan
1034 orang telah melayarinya

Bagaimana untuk memilih semua nama lajur dalam jadual dalam Laravel?

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
);
Salin selepas log masuk

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)
Salin selepas log masuk

Gunakan kelas Skema

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;
Salin selepas log masuk

Contoh

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);
   }
}
Salin selepas log masuk

Output

Keluaran kod di atas adalah seperti berikut.

Array(
   [0] => id
   [1] => name
   [2] => email
   [3] => created_at
   [4] => updated_at
   [5] => address
)
Salin selepas log masuk
Salin selepas log masuk

Gunakan kelas Model

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'];
}
Salin selepas log masuk

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);
   }
}
Salin selepas log masuk

Output

Keluaran kod di atas ialah.

Array(
   [0] => id
   [1] => name
   [2] => email
   [3] => created_at
   [4] => updated_at
   [5] => address
)
Salin selepas log masuk
Salin selepas log masuk

Contoh

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);
   }
}
Salin selepas log masuk

Output

Keluaran kod di atas ialah -

Array ( 
   [0] => id 
   [1] => name 
   [2] => email 
   [3] => created_at 
   [4] => updated_at 
   [5] => address
)
Salin selepas log masuk

Contoh

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);
   }
}
Salin selepas log masuk

Output

Keluaran kod di atas ialah.

Array ( 
   [id] => 
   [name] => 
   [email] => 
   [created_at] => 
   [updated_at] => 
   [address] => 
)
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!