2016-07-22 4 views
1

У меня есть проект php laravel, где мне нужно добавить поле к одной/нескольким моделям (Красноречивый). У меня нет большого опыта работы в php и я никогда раньше не пробовал laravel.Laravel update database table design

Класс выглядит, как это сейчас

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

Я хотел бы добавить поле строку под названием «уровень», но я понятия не имею, как идти об этом. Если я сначала создаю поле в MySQL, а затем модели будут обновлены, если я обновлю модели, а затем Laravel обновить MySQL для меня?

Im с нетерпением жду, чтобы услышать, что я могу сделать :)

+0

Вы используете миграцию? Если нет, я настоятельно рекомендую вам сделать это https://laravel.com/docs/5.2/migrations –

+0

Полезная ссылка здесь: http://stackoverflow.com/questions/16791613/add-new-column-migrate-to-database –

+0

Да, проект использует миграцию, но я только что перехватил проект от кого-то еще – Alpo

ответ

1

Вам нужно добавить миграции:

php artisan make:migration add_fields_to_players_table --table=players 

Открыть в новом /database/migrations миграции и написать

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

Теперь вам нужно пробег в пути

php artisan migrate 

Дополнительная информация и доступные типы колонок here

+0

Знаете ли вы, возможно ли это на сервере one.com? – Alpo

+0

one.com предоставляет доступ к ssh, поэтому вы можете запускать команды на своем сервере –

+0

Хорошо, спасибо, я попробую, когда у меня появится такая возможность. Смогла ли моя таблица table + model автоматически обновляться после запуска последней команды? – Alpo