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;
Comments fornecido por CComment