Heim  >  Artikel  >  Backend-Entwicklung  >  Wie wähle ich alle Spaltennamen in einer Tabelle in Laravel aus?

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

PHPz
PHPznach vorne
2023-08-25 18:51:401036Durchsuche

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

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)

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;

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

Ausgabe

Die Ausgabe des obigen Codes ist wie folgt.

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

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

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

Ausgabe

Die Ausgabe des obigen Codes ist.

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

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

Ausgabe

Die Ausgabe des obigen Codes ist -

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

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

Ausgabe

Die Ausgabe des obigen Codes ist.

Array ( 
   [id] => 
   [name] => 
   [email] => 
   [created_at] => 
   [updated_at] => 
   [address] => 
)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen