2016-04-19 5 views
2

Я читал laravel красноречивые отношения & базы данных миграции документов, но я не могу понять одну вещь. Мы можем создать связь между двумя таблицами посредством создания миграции файлов, как:Ссылка на миграцию Laravel между таблицами

public function up() 
{ 
    Schema::create('keywords', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('name'); 
     $table->integer('keyword_group_id')->unsigned(); 

     $table->foreign('keyword_group_id')->references('id')->on('keyword_groups')->onDelete('cascade'); 
    }); 
} 

А затем, после PHP ремесленник мигрирует команду мы получили два, связанный с один ко многим таблиц отношения. С другой стороны, в документах описывается процесс , создающий отношения между двумя Красноречими людьми. В моем случае это выглядит следующим образом:

class Keyword extends Model 
{ 
    public $timestamps = false; 
    protected $fillable = array('name'); 

    public function keywordGroup() 
    { 
     return $this->belongsTo('App\KeywordGroup'); 
    } 
} 

class KeywordGroup extends Model 
{ 
    public $timestamps = false; 
    protected $fillable = array('name'); 

    public function keywords() 
    { 
     return $this->hasMany('App\Keyword'); 
    } 
} 

Но если я комментирую строку коды, которые делают отношения между таблицами в миграционном файле, это два соединения функции в модели классах не создающая никаких отношений. Не могли бы вы объяснить мне, зачем нам писать эти методы внутри классов моделей? keywordGroup & ключевые слова

ответ

0

Миграции создать структуру базы данных, при создании внешнего ключа здесь отношение будет добавлено в самой базе данных.

Отношения, которые вы создаете в своей модели, не влияют на базу данных, они используются только для упрощения загрузки данных из разных таблиц в код. Они будут работать, или вы не создали внешние ключи в своей базе данных.

+0

спасибо! –

Смежные вопросы