Ne morem ugotoviti, kako dodati nov stolpec v obstoječo tabelo podatkovne zbirke z uporabo ogrodja Laravel.
Poskušal sem urediti migracijsko datoteko z uporabo...
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
V terminalu izvedem php artisan migrate:install
in migrate
.
Kako lahko dodam nove stolpce?
Za ustvarjanje migracije lahko uporabite ukaz migrate:make v vmesniku Artisan CLI. Uporabite posebno ime, da se izognete navzkrižju z obstoječimi modeli.
za Laravel 3:
php artisan migrate:make add_paid_to_users
za Laravel 5+:
php artisan make:migration add_paid_to_users_table --table=users
Nato morate uporabiti metodo Schema::table()
(ker dostopate do obstoječe tabele in ne ustvarjate nove). Stolpec lahko dodate na naslednji način:
public function up()
{
Schema::table('users', function($table) {
$table->integer('paid');
});
}
in ne pozabite dodati možnosti povratka:
public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('paid');
});
}
Nato lahko zaženete migracije:
jezik: bash -->
php artisan migrate
Vse to je dobro opisano v dokumentaciji za Laravel 3:
In za Laravel 4 / Laravel 5:
Urejanje:
uporabite $table->integer('paid')->after('whichever_column');
, da dodate to polje za določenim stolpcem.
Če uporabljate Laravel 5, je ukaz naslednji;
php artisan make:migration add_paid_to_users
Vsi ukazi za izdelavo stvari (kontrolerji, modeli, migracije itd.) so bili preneseni pod ukaz make:
.
Vendar je ukaz php artisan migrate
še vedno enak.
Nove stolpce lahko dodate v začetni metodi Schema::create
na naslednji način:
Schema::create('users', function($table) {
$table->integer("paied");
$table->string("title");
$table->text("description");
$table->timestamps();
});
Če ste že ustvarili tabelo, ji lahko dodate dodatne stolpce tako, da ustvarite novo migracijo in uporabite metodo Schema::table
:
Schema::table('users', function($table) {
$table->string("title");
$table->text("description");
$table->timestamps();
});
Dokumentacija je o tem precej natančna in se od različice 3 do različice 4 ni preveč spremenila.