diff --git a/src/config/shop.php b/src/config/shop.php index e7e6563..a381dd4 100644 --- a/src/config/shop.php +++ b/src/config/shop.php @@ -3,8 +3,8 @@ return [ "slug-shop" => "tienda", "billing_enabled"=>false, "slug-shop-category" => "categoria", - "tags-enable" => false, - "subcategory-enable" => false, + "tags-enable" => true, + "subcategory-enable" => true, "product-index" => [ "pagination" => 15, "otros" => 3 diff --git a/src/controllers/SubCategoryController.php b/src/controllers/SubCategoryController.php index dbef26b..04a3358 100644 --- a/src/controllers/SubCategoryController.php +++ b/src/controllers/SubCategoryController.php @@ -20,9 +20,10 @@ class SubCategoryController extends Controller{ return $subcategories = $category->subcategories()->get(); } $subcategories = $category->subcategories()->paginate(30); + $related_subcategories = SubCategory::pluck('name', "id"); $products = Product::pluck('name', 'id'); return view("shop::subcategory.index") - ->with("products", $products) + ->with("related_subcategories", $related_subcategories) ->with("subcategories", $subcategories) ->with("category", $category); } @@ -30,10 +31,10 @@ class SubCategoryController extends Controller{ public function edit($category_id, $id){ $category = Category::find($category_id); $subcategory = SubCategory::where("category_id", $category_id)->find($id); - $products = Product::pluck('name', 'id'); + $related_subcategories = SubCategory::where("id", "<>", $id)->pluck('name', "id"); return view("shop::subcategory.edit") - ->with('products', $products) + ->with("related_subcategories", $related_subcategories) ->with("subcategory", $subcategory) ->with("category", $category); } @@ -66,7 +67,7 @@ class SubCategoryController extends Controller{ $subcategory = SubCategory::where("category_id", $category_id)->find($id); $subcategory->fill($request->all()); $subcategory->save(); - $subcategory->related_products()->sync($request->related_products); + $subcategory->related_products()->sync($request->related_subcategories); if (isset($request->portada) && $request->portada != null ) { diff --git a/src/migrations/2018_10_18_221930_add_field_related_to_related_products.php b/src/migrations/2018_10_18_221930_add_field_related_to_related_products.php new file mode 100644 index 0000000..855c313 --- /dev/null +++ b/src/migrations/2018_10_18_221930_add_field_related_to_related_products.php @@ -0,0 +1,46 @@ +<?php + +use Illuminate\Support\Facades\Schema; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Database\Migrations\Migration; + +class AddFieldRelatedToRelatedProducts extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::table('related_products', function (Blueprint $table) { + $table->dropForeign(['product_id']); + $table->dropColumn('product_id'); + $table->integer('subcategory_related_id')->unsigned(); + $table->foreign('subcategory_related_id') + ->references('id') + ->on('product_subcategories_shop') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('related_products', function (Blueprint $table) { + + $table->dropForeign(['subcategory_related_id']); + $table->dropColumn('subcategory_related_id'); + + $table->integer('product_id')->unsigned(); + $table->foreign('product_id') + ->references('id') + ->on('products_shop') + ->onDelete('cascade'); + }); + } +} diff --git a/src/models/ProductShop.php b/src/models/ProductShop.php index 8b6125b..86d5677 100644 --- a/src/models/ProductShop.php +++ b/src/models/ProductShop.php @@ -68,9 +68,9 @@ class ProductShop extends Model return $this->belongsToMany('Onestartup\Shop\Model\ProductTag', 'product_product_tags', 'product_id', 'tag_id'); } - public function subcategories_related(){ + /*public function subcategories_related(){ return $this->belongsToMany('Onestartup\Shop\Model\ProductSubCategoryShop', 'related_products', 'product_id', 'subcategory_id'); - } + }*/ public function details_sale() { diff --git a/src/models/ProductSubCategoryShop.php b/src/models/ProductSubCategoryShop.php index 83c2735..9363364 100644 --- a/src/models/ProductSubCategoryShop.php +++ b/src/models/ProductSubCategoryShop.php @@ -26,6 +26,6 @@ class ProductSubCategoryShop extends Model } public function related_products(){ - return $this->belongsToMany('Onestartup\Shop\Model\ProductShop', 'related_products', 'subcategory_id', 'product_id'); + return $this->belongsToMany('Onestartup\Shop\Model\ProductSubCategoryShop', 'related_products', 'subcategory_id', 'subcategory_related_id'); } } diff --git a/src/views/subcategory/edit.blade.php b/src/views/subcategory/edit.blade.php index 3868d03..ca38cda 100644 --- a/src/views/subcategory/edit.blade.php +++ b/src/views/subcategory/edit.blade.php @@ -74,6 +74,6 @@ @section('script_extras') <script> - $('#related_products').select2(); + $('#related_subcategories').select2(); </script> @endsection diff --git a/src/views/subcategory/fields.blade.php b/src/views/subcategory/fields.blade.php index 7b96190..2e96d42 100644 --- a/src/views/subcategory/fields.blade.php +++ b/src/views/subcategory/fields.blade.php @@ -20,8 +20,8 @@ </div> <div class="form-group"> - {!! Form::label('related_products', 'Productos relacionados') !!} - {!! Form::select('related_products[]', $products, null, ["class"=>"form-control", "required"=>"required", "multiple" => "multiple", "id" => "related_products", "style" => "width: 100%;"]) !!} + {!! Form::label('related_subcategories', '¿De cual(es) subcategorías seran los productos relacionados de esta subcategoría?') !!} + {!! Form::select('related_subcategories[]', $related_subcategories, isset($subcategory->related_products) ? $subcategory->related_products->pluck("id") : null, ["class"=>"form-control", "multiple" => "multiple", "id" => "related_subcategories", "style" => "width: 100%;"]) !!} </div> <div class="form-group"> diff --git a/src/views/subcategory/index.blade.php b/src/views/subcategory/index.blade.php index 83fe437..4b7216e 100644 --- a/src/views/subcategory/index.blade.php +++ b/src/views/subcategory/index.blade.php @@ -104,6 +104,6 @@ @section('script_extras') <script> - $('#related_products').select2(); + $('#related_subcategories').select2(); </script> @endsection \ No newline at end of file