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 -
abrufenmysql> 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)
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;
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); } }
Die Ausgabe des obigen Codes ist wie folgt.
Array( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
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); } }
Die Ausgabe des obigen Codes ist.
Array( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
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); } }
Die Ausgabe des obigen Codes ist -
Array ( [0] => id [1] => name [2] => email [3] => created_at [4] => updated_at [5] => address )
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); } }
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!