Я новичок в Laravel.
Я пытаюсь прикрепить продукт к категории.
Я хочу, чтобы это происходило на моей странице создания, когда я создаю новый продукт, поэтомуавтоматически добавит категорию во вновь созданный продукт.
Это моя модель категории:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $guarded = ['id'];
public function products()
{
return $this->belongsToMany('\App\Product',
'category_product',
'category_id',
'product_id');
}
}
Это моя модель продукта
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $guarded = ['id'];
public function categories()
{
return $this->belongsToMany('\App\Category',
'category_product',
'category_id',
'product_id');
}
}
Это мой продуктКонтроллер
<?php
namespace App\Http\Controllers;
use \App\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$products = Product::all();
return view('products.index', compact('products'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view ('products.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$product= new \App\Product;
$product->name=$request->get('name');
$product->description=$request->get('description');
$product->price=$request->get('price');
$product->amount=$request->get('amount');
$product->Categories()->attach($category, ['category_id' =>
$category_id]);
$product->save();
return redirect('products');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
Это мой вид создания продукта
<h1>Create a product</h1>
<form method="POST" action="{{ url('products') }}">
@csrf
<div class="form-group row">
<label for="name" class="col-sm-4 col-form-label text-md-
right">{{('name') }}</label>
<div class="col-md-6">
<input id="name" type="text" name="name">
</div>
</div>
<div class="form-group row">
<label for="description" class="col-sm-4 col-form-label text-md-right">{{ ('description') }}</label>
<div class="col-md-6">
<input id="description" type="text" name="description">
</div>
</div>
<div class="form-group row">
<label for="price" class="col-sm-4 col-form-label text-md-
right">{{ ('price') }}</label>
<div class="col-md-6">
<input id="description" type="number" step=0.01
name="price">
</div>
</div>
<div class="form-group row">
<label for="amount" class="col-sm-4 col-form-label text-md-
right">{{ ('amount') }}</label>
<div class="col-md-6">
<input id="amount" type="number" name="amount">
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ ('Submit') }}
</button>
</div>
</div>
</form>