Relacionamentos

Imprimir

Relacionamento entre tabelas e entre models no Laravel 5

Para relacionar tabelas usar a convenção

inserir um campo chamado
tabela_id int not null

Relacionar users com groups:

groups
id

users
id
group_id

Relacionar os Models Task com User

class Task extends Model {
public function user()
{
return $this->belongsTo('User');
}
}

class User extends Model {
public function tasks()
{
return $this->hasMany('Task');
}
}


Relacionamento entre posts e comments
Um para muitos

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
/**
* Get the comments for the blog post.
*/
public function comments()
{
return $this->hasMany('App\Comment'); // Passamos aqui a chave estrangeira, mas somente quando diferente
}
}

Comments
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
/**
* Get the post that owns the comment.
*/
public function post()
{
return $this->belongsTo('App\Post');
}
}

Ou usamos App\Post
ou fazemos o importe no começo e usamos apenas Post


Usando o tinker para trazer um produto e suas avaliações

php artisan tinker

use Loja\Produto;
$p->Prpduto::find(5);

$p->avaliacoes;