many to many laravel code example
Example 1: one to many laravel
For example, a blog post may have an infinite number of comments. And a single
comment belongs to only a single post
class Post extends Model
{
public function comments()
{
return $this->hasMany('App\Models\Comment');
}
}
class Comment extends Model
{
public function post()
{
return $this->belongsTo('App\Models\Post');
}
}
Example 2: laravel detach
// Detach a single role from the user...
$user->roles()->detach($roleId);
// Detach all roles from the user...
$user->roles()->detach();
Example 3: whereHas site:https://laravel.com/docs/
use Illuminate\Database\Eloquent\Builder;
// Retrieve posts with at least one comment containing words like code%...
$posts = Post::whereHas('comments', function (Builder $query) {
$query->where('content', 'like', 'code%');
})->get();
// Retrieve posts with at least ten comments containing words like code%...
$posts = Post::whereHas('comments', function (Builder $query) {
$query->where('content', 'like', 'code%');
}, '>=', 10)->get();
Example 4: laravel has many
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
/**
* Get the comments for the blog post.
*/
public function comments()
{
return $this->hasMany('App\Models\Comment');
}
}
Example 5: many to many relationship laravel
use App\Models\User;
$user = User::find(1);
$user->roles()->attach($roleId);
Example 6: laravel many to many relationship
/*
users
id - integer
name - string
roles
id - integer
name - string
role_user
user_id - integer
role_id - integer
*/
class User extends Model
{
/**
* The roles that belong to the user.
*/
public function roles()
{
/*To determine the table name of the relationship's intermediate
table, Eloquent will join the two related model names in
alphabetical order. However, you are free to override this
convention. You may do so by passing a second argument to the
belongsToMany method*/
return $this->belongsToMany(Role::class,'role_user');
}
}
//Defining The Inverse Of The Relationship
class Role extends Model
{
/**
* The users that belong to the role.
*/
public function users()
{
return $this->belongsToMany(User::class);
}
}