Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memilih semua nama lajur dalam jadual dalam Laravel?

Bagaimana untuk memilih semua nama lajur dalam jadual dalam Laravel?

PHPz
PHPzke hadapan
2023-08-25 18:51:401038semak imbas

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
);

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)

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;

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);
   }
}

Output

Keluaran kod di atas adalah seperti berikut.

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

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'];
}

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);
   }
}

Output

Keluaran kod di atas ialah.

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

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);
   }
}

Output

Keluaran kod di atas ialah -

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

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);
   }
}

Output

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam