Wie wähle ich alle Spaltennamen in einer Tabelle in Laravel aus?

PHPz
Freigeben: 2023-08-25 18:52:17
nach vorne
1065 Leute haben es durchsucht

Wie wähle ich alle Spaltennamen in einer Tabelle in Laravel aus?

Hier sind die verschiedenen Möglichkeiten, Spaltennamen aus einer Tabelle in Laravel abzurufen.

Angenommen, wir erstellen eine Tabelle namens Students in einer MySQL-Datenbank mit der folgenden Abfrage:

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
);
Nach dem Login kopieren

Sie können die vollständigen Details mit dem DESC-Befehl -

abrufen
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)
Nach dem Login kopieren

Schema-Klasse verwenden

Mit der Schema-Klasse können Sie Tabellen in Laravel erstellen und aktualisieren. Um Schemaklassen zu verwenden, fügen Sie Ihrem Controller die folgenden Klassen hinzu.

use Illuminate\Support\Facades\Schema;
Nach dem Login kopieren

Beispiel

Hier ist ein funktionierendes Beispiel mit der Schemaklasse -

<?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);
   }
}
Nach dem Login kopieren

Ausgabe

Die Ausgabe des obigen Codes ist wie folgt.

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

Modellklasse verwenden

Die Model-Klasse in Laravel repräsentiert die Tabelle in der Datenbank. Wenn Sie beispielsweise über eine Studententabelle verfügen, lautet der Modellname „Student“, für „Benutzer“ lautet der Modellname „Benutzer“ und für „Mitarbeiter“ lautet der Modellname „Mitarbeiter“. Tabellennamen müssen im Plural und Modellnamen im Singular stehen. Dies ist das Muster, dem Sie folgen sollten, aber das hindert Sie nicht daran, eine Benennungskonvention Ihrer Wahl für Tabellennamen und Modellnamen zu verwenden.

Erstellen Sie ein Studentenmodell wie folgt -

<?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'];
}
Nach dem Login kopieren

Verwenden Sie nun das Modell in Ihrem Controller, um die Spaltennamen zu erhalten -

<?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);
   }
}
Nach dem Login kopieren

Ausgabe

Die Ausgabe des obigen Codes ist.

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

Beispiel

Sie können auch die im Controller angezeigte Datenbank-Look-and-Feel-Klasse verwenden -

<?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);
   }
}
Nach dem Login kopieren

Ausgabe

Die Ausgabe des obigen Codes ist -

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

Beispiel

Eine andere Möglichkeit, Spalten mithilfe von Datenbank-Looks abzurufen, ist -

<?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);
   }
}
Nach dem Login kopieren

Ausgabe

Die Ausgabe des obigen Codes ist.

Array ( 
   [id] => 
   [name] => 
   [email] => 
   [created_at] => 
   [updated_at] => 
   [address] => 
)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie wähle ich alle Spaltennamen in einer Tabelle in Laravel aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage