2016-07-22 7 views
1

Ich habe ein PHP-Laravel-Projekt, wo ich ein Feld zu einem/mehreren Modellen (Eloquent) hinzufügen muss. Ich habe nicht viel Erfahrung in PHP und habe Laravel nie zuvor versucht.Laravel Update Datenbanktabellen-Design

Die Klasse sieht wie folgt nun

class Player extends Eloquent 
{ 
use GenderTrait; 
use VisibilityTrait; 
use PlayerPhotoTrait; 
use PlayerActionTrait; 

const GENDER_MALE = 2; 
const GENDER_FEMALE = 1; 

/** 
* The database table used by model. 
* 
* @var string 
*/ 
protected $table = 'players'; 

/** 
* Parameters for `actions` relation. 
* 
* @see PlayerActionTrait::actions() 
* @var array 
*/ 
protected $actionModel = [ 
    'name' => 'PlayerAction', 
    'foreignKey' => 'player_id', 
]; 

/** 
* The list of mass-assignable attributes. 
* 
* @var array 
*/ 
protected $fillable = [ 
    'name', 
    'start_value', 
    'gender', 
    'is_visible', 
    'nation', 
]; 

/** 
* The list of validation rules. 
* 
* @var array 
*/ 
public static $rules = [ 
    'name' => 'required', 
    'nation' => 'required|numeric', 
    'start_value' => 'required|numeric', 
]; 

/** 
* @inheritdoc 
*/ 
protected static function boot() 
{ 
    parent::boot(); 

} 

/** 
* Players country. 
* 
* @return Country 
*/ 
public function country() 
{ 
    return $this->belongsTo('Country', 'nation'); 
} 

/** 
* Player videos. 
* 
* @return mixed 
*/ 
public function videos() 
{ 
    return $this->morphMany('YoutubeLink', 'owner'); 
} 
} 

Ich möchte einen String-Feld hinzufügen „Ebene“ genannt, aber ich habe keine Ahnung, wie man das macht. Wenn ich zuerst das Feld in MySQL erstelle und die Modelle dann aktualisiert werden, wenn ich die Modelle aktualisiere und dann Laravel MySQL für mich aktualisiere?

Im freut sich auf zu hören, was ich tun kann :)

+0

Verwenden Sie Migrationen? Wenn nicht, empfehle ich Ihnen dringend https://laravel.com/docs/5.2/migrations –

+0

Ein nützlicher Link hier: http://stackoverflow.com/questions/16791613/add-new-column-migrate-to-database –

+0

Ja, das Projekt verwendet Migrationen, aber ich habe das Projekt gerade erst von jemand anderem übernommen – Alpo

Antwort

1

Sie müssen Migration hinzuzufügen:

php artisan make:migration add_fields_to_players_table --table=players 

Open in /database/migrations neue Migration und schreiben

Schema::table('players', function ($table) { 
    $table->string('new_string_field'); 
}); 

Jetzt müssen Sie Laufmigrationen

php artisan migrate 

Weitere Informationen und verfügbare Spaltentypen here

+0

Wissen Sie, ob dies auf einem one.com-Server möglich ist? – Alpo

+0

one.com bietet SSH-Zugriff, so dass Sie Befehle auf Ihrem Server ausführen können –

+0

Okay danke, ich werde es versuchen, wenn ich die Chance bekomme. Wird meine Players-Tabelle und mein Modell automatisch aktualisiert, nachdem ich den letzten Befehl ausgeführt habe? – Alpo