<p>Laravel を初めて使用するので、特定の製品を除外したいと考えています。 </p>
<p>データベースに 2 つのテーブルがあります。1 つ目はテーブル <code>products</code>、2 つ目はテーブル <code>attributes</code> です。 </p>
<p><strong>商品リスト</strong></p>
<pre class="brush:php;toolbar:false;">Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->BigInteger('category_id')->unsigned()->nullable();
$table->string('name');
$table->string('code');
$table->integer('status')->default(1);
$table->integer('featured')->default(1);
$table->string('画像');
$table->longText('short_description');
$table->longText('long_description');
$table->timestamps();
})</pre>
<p><strong>製品属性テーブル</strong></p>
<pre class="brush:php;toolbar:false;">Schema::create('product_attributes', function (Blueprint $table) {.
$table->bigIncrements('id');
$table->unsignedBigInteger('product_id');
$table->string('sku');
$table->string('size');
$table->string('color');
$table->string('価格');
$table->string('ストック');
$table->timestamps();
})</pre>
<p><strong>人間関係</strong></p>
<p>単一の商品に複数の属性があるため</p>
<pre class="brush:php;toolbar:false;">クラス プロダクトはモデルを拡張します
{
HasFactoryを使用します。
パブリック関数の属性()
{
return $this->hasmany('App\Models\ProductAttributes', 'product_id');
}
}</pre>
<p><strong>マイ ブレード ファイル</strong></p>
<pre class="brush:php;toolbar:false;"><form action="{{url('/product/filter')}}"method="post">
@csrf
<入力タイプ="隠し"値="{{$slug}}"名前="ナメクジ">
<label class="custom-control-label" for="black">Black</label>
</div>
</form></pre>
<p>コントローラーに関数があります</p>
<pre class="brush:php;toolbar:false;">パブリック関数 shop()
{
$filter_products = Product::with('attributes')->where(['category_id' => $category->id, 'color' => $request->color]);
return view('frontend.shop', Compact('filter_products'));
}</pre>
<p>この関数を適用しても結果が得られません</p>
<p>フロントエンド ストア ページで特定のサイズや色に基づいて商品をフィルタリングする方法を教えてください。
そして、ストア機能にどのようなコードが含まれるか。 </p>
<p>返信してください。よろしくお願いします</p>
関係でフィルタリングする必要があります。ドキュメントを確認してください
https://laravel.com/docs/9 .x/eloquent-relationships#querying-relationship-existence
###例えば WhereHasを使用する リーリー
どこにも適用されない場合、すべてのプロパティが返されますリーリー