first upload all files
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateWishListsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('wish_lists', function (Blueprint $table) {
|
||||
$table->integer('user_id')->unsigned();
|
||||
$table->integer('product_id')->unsigned();
|
||||
$table->timestamps();
|
||||
|
||||
$table->primary(['user_id', 'product_id']);
|
||||
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
|
||||
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('wish_lists');
|
||||
}
|
||||
}
|
||||
29
Modules/Wishlist/Http/Controllers/WishlistController.php
Normal file
29
Modules/Wishlist/Http/Controllers/WishlistController.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Wishlist\Http\Controllers;
|
||||
|
||||
class WishlistController
|
||||
{
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store()
|
||||
{
|
||||
if (! auth()->user()->wishlistHas(request('productId'))) {
|
||||
auth()->user()->wishlist()->attach(request('productId'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy resources by the given id.
|
||||
*
|
||||
* @param string $productId
|
||||
* @return void
|
||||
*/
|
||||
public function destroy($productId)
|
||||
{
|
||||
auth()->user()->wishlist()->detach($productId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Wishlist\Http\Controllers;
|
||||
|
||||
class WishlistProductController
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return auth()->user()
|
||||
->wishlist()
|
||||
->with('files')
|
||||
->latest()
|
||||
->paginate(20);
|
||||
}
|
||||
}
|
||||
10
Modules/Wishlist/Routes/public.php
Normal file
10
Modules/Wishlist/Routes/public.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::post('wishlist', 'WishlistController@store')->name('wishlist.store');
|
||||
Route::delete('wishlist/{productId}', 'WishlistController@destroy')->name('wishlist.destroy');
|
||||
|
||||
Route::get('wishlist/products', 'WishlistProductController@index')->name('wishlist.products.index');
|
||||
});
|
||||
27
Modules/Wishlist/composer.json
Normal file
27
Modules/Wishlist/composer.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "fleetcart/wishlist",
|
||||
"description": "The FleetCart Wishlist Module.",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Envay Soft",
|
||||
"email": "envaysoft@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Wishlist\\": ""
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"minimum-stability": "dev"
|
||||
}
|
||||
6
Modules/Wishlist/module.json
Normal file
6
Modules/Wishlist/module.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "Wishlist",
|
||||
"alias": "wishlist",
|
||||
"description": "The FleetCart Wishlist Module.",
|
||||
"priority": 100
|
||||
}
|
||||
Reference in New Issue
Block a user