// create_categories_table
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->timestamps();
});
}
########################################
// create_products_table
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->float('price');
$table->timestamps();
});
}
########################################
// create_category_product_table
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('category_product', function (Blueprint $table) {
$table->increments('id');
$table->integer('category_id')->unsigned();
$table->integer('product_id')->unsigned();
});
}
########################################
// Product.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
public function categories()
{
return $this->belongsToMany(Category::class);
}
}
########################################
// Category.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Product;
class Category extends Model
{
public function products()
{
return $this->belongsToMany(Product::class);
}
}
########################################
// ProductController.php
<?php
namespace App\Http\Controllers;
use App\Category;
use App\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function create(Request $request)
{
$product = new Product;
$product->name = 'God of War';
$product->price = 40;
$product->save();
$category = Category::find([3, 4]);
$product->categories()->attach($category);
return 'Success';
}
}
########################################
// show.blade.php
<h2>Product Name: </h2>
<p>{{ $product->name }} || ${{ money_format($product->price, 2) }}</p>
<h3>Product Belongs to</h3>
<ul>
@foreach($product->categories as $category)
<li>{{ $category->title }}</li>
@endforeach
</ul>
######################################
// ProductController.php
public function removeCategory(Product $product)
{
$category = Category::find(3);
$product->categories()->detach($category);
return 'Success';
}
######################################