Neste exemplo, veremos relacionamentos do Laravel Eloquent, são eles:
- One to one
- One to many
- Many to many
O relacionamento one to one (um para um) é básico no laravel. Esse tipo de relacionamento significa que um modelo do tipo A só pode ser vinculado a um modelo do tipo B e vice-versa.
Neste exemplo, um usuário pode ter apenas um passaporte e um passaporte pertence apenas a um usuário.
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function passport() {
return $this->hasOne(App\Passport::class);
}
}
No modelo Passport, definiremos o inverso da relação. Informamos ao modelo do Passport que ele pertence a um usuário.
namespace App;
use Illuminate\Database\Eloquent\Model;
class Passport extends Model
{
public function user() {
return $this->belongsTo(App\User::class);
}
}
One to many
O relacionamento One to many (Um para Muitos) significa que um modelo do tipo A pode ser vinculado a vários modelos do tipo B. Mas o modelo do tipo B pertence a apenas um modelo do tipo A.
Por exemplo, uma relação entre um modelo de usuário e um modelo de carrinho seria uma relação um para muitos. Um usuário pode ter vários carrinhos, mas um carrinho pertence apenas a um usuário.
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function carts() {
return $this->hasMany(App\Cart::class);
}
}
Definimos agora que o modelo de carrinho pertence a um modelo de usuário.
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cart extends Model
{
public function user() {
return $this->belongsTo(App\User::class);
}
}
Many to many
O relacionamento de Many to many (muitos para muitos) significa que um modelo do tipo A pode ser vinculado a vários modelos do tipo B e vice-versa.
Por exemplo, um relacionamento entre um modelo de carrinho e um modelo de produto seria um relacionamento muitos para muitos. Um carrinho pode ter vários produtos e um produto pode estar em vários carrinhos.
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cart extends Model
{
public function products() {
return $this->belongsToMany(App\Product::class);
}
}
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
public function carts() {
return $this->belongsToMany(App\Cart::class);
}
}
Relacionamentos do Laravel Eloquent
1 de July de 2021
Laravel
No Comments
adrianoApi
Neste exemplo, veremos relacionamentos do Laravel Eloquent, são eles:
One to One
O relacionamento one to one (um para um) é básico no laravel. Esse tipo de relacionamento significa que um modelo do tipo A só pode ser vinculado a um modelo do tipo B e vice-versa.
Neste exemplo, um usuário pode ter apenas um passaporte e um passaporte pertence apenas a um usuário.
No modelo Passport, definiremos o inverso da relação. Informamos ao modelo do Passport que ele pertence a um usuário.
One to many
O relacionamento One to many (Um para Muitos) significa que um modelo do tipo A pode ser vinculado a vários modelos do tipo B. Mas o modelo do tipo B pertence a apenas um modelo do tipo A.
Por exemplo, uma relação entre um modelo de usuário e um modelo de carrinho seria uma relação um para muitos. Um usuário pode ter vários carrinhos, mas um carrinho pertence apenas a um usuário.
Definimos agora que o modelo de carrinho pertence a um modelo de usuário.
Many to many
O relacionamento de Many to many (muitos para muitos) significa que um modelo do tipo A pode ser vinculado a vários modelos do tipo B e vice-versa.
Por exemplo, um relacionamento entre um modelo de carrinho e um modelo de produto seria um relacionamento muitos para muitos. Um carrinho pode ter vários produtos e um produto pode estar em vários carrinhos.