Route
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\YarnController;
Route::get('/yarn/{slug}', [YarnController::class, 'show'])->name('yarn.show');
YarnController
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Yarn;
class YarnController extends Controller
{
public function show($slug)
{
return view('yarn.show', [
'yarns' => Yarn::where('slug', $slug)->get()
]);
}
}
Условием выборки является
slug Если в базе есть товары (пряжа) с таким
slug, то мы показываем их пользователю.
Хочу реализовать:
У товара (пряжи) есть связанные модели.
Country,
Manufacturer,
Fiber и т.д. Они имеют свой
slug. Неплохо бы включить их в условие выборки.
/yarn/alize (Manufacturer)
/yarn/acrylic (Fiber)
/yarn/alize-lana-gold (Yarn)
Есть идея хранить все
slug в одной таблице. При выборки товаров (пряжи) проверять, есть там такой
slug или нет.
Просто пример. Наверное это так работать не будет.
Yarn::whereHas('table', function($query) use ($slug) {
$query->where('slug', $slug);
})->get();
Трудность еще в том, что
Country и
Manufacturer имеет отношение один ко многим, а
Fiber многие ко многим.
Не понятно, как при добавлении новой страны (например) записать все данные страны в таблицу
Country, а слоган в таблицу
Slug.
Любые идеи как реализовать?