Read Cart Items with JOINS
This commit is contained in:
parent
080094d2dd
commit
71944f3245
@ -3,6 +3,9 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
use App\Models\Cart;
|
use App\Models\Cart;
|
||||||
use App\Models\Products;
|
use App\Models\Products;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -31,35 +34,7 @@ class MainController extends Controller
|
|||||||
return view('register');
|
return view('register');
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function registerUser(Request $data)
|
|
||||||
// {
|
|
||||||
// // Validate the input data
|
|
||||||
// $data->validate([
|
|
||||||
// 'name' => 'required|string|max:255',
|
|
||||||
// 'email' => 'required|string|email|max:255|unique:users',
|
|
||||||
// 'password' => 'required|string|min:8|confirmed',
|
|
||||||
// 'file' => 'required|file|mimes:jpg,png,jpeg|max:2048',
|
|
||||||
// ]);
|
|
||||||
|
|
||||||
// // Check if the email already exists
|
|
||||||
// if (User::where('email', $data->input('email'))->exists()) {
|
|
||||||
// return redirect('register')->with('error', 'Email already exists!');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Create a new user
|
|
||||||
// $newUser = new User();
|
|
||||||
// $newUser->name = $data->input('name');
|
|
||||||
// $newUser->email = $data->input('email');
|
|
||||||
// $newUser->password = Hash::make($data->input('password')); // Hashing the password
|
|
||||||
// $newUser->picture = $data->file('file')->getClientOriginalName();
|
|
||||||
// $data->file('file')->move('uploads/profiles/', $newUser->picture);
|
|
||||||
// $newUser->type = "Customer";
|
|
||||||
// if ($newUser->save()) {
|
|
||||||
// return redirect('login')->with('success', 'Account created successfully!');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return view('register')->with('error', 'Account creation failed. Please try again.');
|
|
||||||
// }
|
|
||||||
|
|
||||||
public function registerUser(Request $data)
|
public function registerUser(Request $data)
|
||||||
{
|
{
|
||||||
@ -139,6 +114,37 @@ class MainController extends Controller
|
|||||||
return view('blogDetails');
|
return view('blogDetails');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// public function cart()
|
||||||
|
// {
|
||||||
|
// $cartItems = DB::table('products')
|
||||||
|
// ->join('carts', 'carts.productsId', 'product.id')
|
||||||
|
// ->select('products.name', 'products.price', 'products.picture', 'products.quantity as pQuantity', 'carts.*')
|
||||||
|
// ->where('carts.customerId', session()->get('id'))
|
||||||
|
// ->get();
|
||||||
|
|
||||||
|
// dd($cartItems);
|
||||||
|
|
||||||
|
// return view('cart', compact('cartItems'));
|
||||||
|
// }
|
||||||
|
|
||||||
|
public function cart()
|
||||||
|
{
|
||||||
|
$cartItems = DB::table('products')
|
||||||
|
->join('carts', 'carts.productId', '=', 'products.id')
|
||||||
|
->select('products.name', 'products.price', 'products.picture', 'products.quantity as pQuantity', 'carts.*')
|
||||||
|
->where('carts.customerId', session()->get('id'))
|
||||||
|
->get();
|
||||||
|
|
||||||
|
//dd($cartItems);
|
||||||
|
|
||||||
|
return view('cart', compact('cartItems'));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function addToCart(Request $data)
|
public function addToCart(Request $data)
|
||||||
{
|
{
|
||||||
if (session()->has('id')) {
|
if (session()->has('id')) {
|
||||||
|
@ -13,9 +13,9 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('carts', function (Blueprint $table) {
|
Schema::create('carts', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->integer('productId')->default(0);
|
$table->integer('productId')->nullable();
|
||||||
$table->integer('customerId')->default(0);
|
$table->integer('customerId')->nullable();
|
||||||
$table->integer('quantity')->default(0);
|
$table->integer('quantity')->nullable();
|
||||||
|
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
@ -2329,12 +2329,20 @@ ol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.shopping__cart__table table tbody tr td.product__cart__item {
|
.shopping__cart__table table tbody tr td.product__cart__item {
|
||||||
width: 400px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.shopping__cart__table table tbody tr td.product__cart__item .product__cart__item__pic {
|
.shopping__cart__table table tbody tr td.product__cart__item .product__cart__item__pic {
|
||||||
float: left;
|
float: left;
|
||||||
margin-right: 30px;
|
margin-right: 30px;
|
||||||
|
/* height: 260px; */
|
||||||
|
|
||||||
|
/* float: left;
|
||||||
|
margin-right: 30px;
|
||||||
|
height: 260px;
|
||||||
|
width: 100%;
|
||||||
|
object-fit: contain;
|
||||||
|
object-position: center; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.shopping__cart__table table tbody tr td.product__cart__item .product__cart__item__text {
|
.shopping__cart__table table tbody tr td.product__cart__item .product__cart__item__text {
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
<div class="breadcrumb__text">
|
<div class="breadcrumb__text">
|
||||||
<h4>Shopping Cart</h4>
|
<h4>Shopping Cart</h4>
|
||||||
<div class="breadcrumb__links">
|
<div class="breadcrumb__links">
|
||||||
<a href="./index.html">Home</a>
|
<a href="{{ url::to('/') }}">Home</a>
|
||||||
<a href="./shop.html">Shop</a>
|
<a href="{{ url::to('shop') }}">Shop</a>
|
||||||
<span>Shopping Cart</span>
|
<span>Shopping Cart</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -34,88 +34,63 @@
|
|||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- <tbody>
|
||||||
|
@foreach ($cartItems as $item)
|
||||||
|
<tr>
|
||||||
|
<td class="product__cart__item">
|
||||||
|
<div class="product__cart__item__pic">
|
||||||
|
<img src="{{ asset('uploads/products/' . $item->picture) }}" alt="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="quantity__item">
|
||||||
|
<div class="product__cart__item__text">
|
||||||
|
<h6>
|
||||||
|
{{ $item->name }}
|
||||||
|
</h6>
|
||||||
|
<h5>
|
||||||
|
<b>Nrs {{ $item->price }}</b>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
<div class="quantity">
|
||||||
|
|
||||||
|
<input type="number" class="form-control" name="quantity" min="1"
|
||||||
|
max="{{ $item->pQuantity }}" value="{{ $item->quantity }} ">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="cart__price"> <br> Nrs. {{ $item->price * $item->quantity }} </td>
|
||||||
|
<td class="cart__close"><i class="fa fa-close"></i></td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody> --}}
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@foreach ($cartItems as $item)
|
||||||
<tr>
|
<tr>
|
||||||
<td class="product__cart__item">
|
<td class="product__cart__item">
|
||||||
<div class="product__cart__item__pic">
|
<div class="product__cart__item__pic">
|
||||||
<img src="img/shopping-cart/cart-1.jpg" alt="">
|
<img src="{{ asset('uploads/products/' . $item->picture) }}" alt="">
|
||||||
</div>
|
|
||||||
<div class="product__cart__item__text">
|
|
||||||
<h6>T-shirt Contrast Pocket</h6>
|
|
||||||
<h5>$98.49</h5>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="quantity__item">
|
<td class="quantity__item">
|
||||||
<div class="quantity">
|
|
||||||
<div class="pro-qty-2">
|
|
||||||
<input type="text" value="1">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="cart__price">$ 30.00</td>
|
|
||||||
<td class="cart__close"><i class="fa fa-close"></i></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="product__cart__item">
|
|
||||||
<div class="product__cart__item__pic">
|
|
||||||
<img src="img/shopping-cart/cart-2.jpg" alt="">
|
|
||||||
</div>
|
|
||||||
<div class="product__cart__item__text">
|
<div class="product__cart__item__text">
|
||||||
<h6>Diagonal Textured Cap</h6>
|
<h6>{{ $item->name }}</h6>
|
||||||
<h5>$98.49</h5>
|
<h5><b>Nrs {{ $item->price }}</b></h5>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
<td class="quantity__item">
|
|
||||||
<div class="quantity">
|
<div class="quantity">
|
||||||
<div class="pro-qty-2">
|
<input type="number" class="form-control" name="quantity" min="1"
|
||||||
<input type="text" value="1">
|
max="{{ $item->pQuantity }}" value="{{ $item->quantity }}">
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="cart__price">$ 32.50</td>
|
<td class="cart__price"><br> Nrs. {{ $item->price * $item->quantity }}</td>
|
||||||
<td class="cart__close"><i class="fa fa-close"></i></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="product__cart__item">
|
|
||||||
<div class="product__cart__item__pic">
|
|
||||||
<img src="img/shopping-cart/cart-3.jpg" alt="">
|
|
||||||
</div>
|
|
||||||
<div class="product__cart__item__text">
|
|
||||||
<h6>Basic Flowing Scarf</h6>
|
|
||||||
<h5>$98.49</h5>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="quantity__item">
|
|
||||||
<div class="quantity">
|
|
||||||
<div class="pro-qty-2">
|
|
||||||
<input type="text" value="1">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="cart__price">$ 47.00</td>
|
|
||||||
<td class="cart__close"><i class="fa fa-close"></i></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="product__cart__item">
|
|
||||||
<div class="product__cart__item__pic">
|
|
||||||
<img src="img/shopping-cart/cart-4.jpg" alt="">
|
|
||||||
</div>
|
|
||||||
<div class="product__cart__item__text">
|
|
||||||
<h6>Basic Flowing Scarf</h6>
|
|
||||||
<h5>$98.49</h5>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="quantity__item">
|
|
||||||
<div class="quantity">
|
|
||||||
<div class="pro-qty-2">
|
|
||||||
<input type="text" value="1">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="cart__price">$ 30.00</td>
|
|
||||||
<td class="cart__close"><i class="fa fa-close"></i></td>
|
<td class="cart__close"><i class="fa fa-close"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -74,8 +74,15 @@
|
|||||||
<div class="col-lg-6 col-md-5">
|
<div class="col-lg-6 col-md-5">
|
||||||
<div class="header__top__right">
|
<div class="header__top__right">
|
||||||
<div class="header__top__links">
|
<div class="header__top__links">
|
||||||
<a href="#">Sign in</a>
|
|
||||||
<a href="#">FAQs</a>
|
@if (session()->has('id'))
|
||||||
|
<a href="{{ URL::to('/logout') }}">Logout</a>
|
||||||
|
@else
|
||||||
|
<a href="{{ URL::to('/login') }}">Login</a>
|
||||||
|
<a href="{{ URL::to('/register') }}">Register</a>
|
||||||
|
@endif
|
||||||
|
{{-- <a href="{{ URL::to('/register') }}">Sign in</a>
|
||||||
|
<a href="{{ URL::to('/login') }}">Login</a> --}}
|
||||||
</div>
|
</div>
|
||||||
<div class="header__top__hover">
|
<div class="header__top__hover">
|
||||||
<span>Usd <i class="arrow_carrot-down"></i></span>
|
<span>Usd <i class="arrow_carrot-down"></i></span>
|
||||||
@ -105,19 +112,19 @@
|
|||||||
<li><a href="#">Pages</a>
|
<li><a href="#">Pages</a>
|
||||||
<ul class="dropdown">
|
<ul class="dropdown">
|
||||||
<li><a href="{{ URL::to('about') }}">About Us</a></li>
|
<li><a href="{{ URL::to('about') }}">About Us</a></li>
|
||||||
<li><a href="{{ URL::to('singleProduct') }}">Single Product</a></li>
|
{{-- <li><a href="{{ URL::to('singleProduct') }}">Single Product</a></li> --}}
|
||||||
<li><a href="{{ URL::to('cart') }}">Shopping Cart</a></li>
|
<li><a href="{{ URL::to('cart') }}">Shopping Cart</a></li>
|
||||||
<li><a href="{{ URL::to('checkout') }}">Check Out</a></li>
|
<li><a href="{{ URL::to('checkout') }}">Check Out</a></li>
|
||||||
<li><a href="{{ URL::to('blogDetails') }}">Blog Details</a></li>
|
{{-- <li><a href="{{ URL::to('blogDetails') }}">Blog Details</a></li> --}}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@if (session()->has('id'))
|
{{-- @if (session()->has('id'))
|
||||||
<li><a href="{{ URL::to('/logout') }}">Logout</a></li>
|
<li><a href="{{ URL::to('/logout') }}">Logout</a></li>
|
||||||
@else
|
@else
|
||||||
<li><a href="{{ URL::to('/login') }}">Login</a></li>
|
<li><a href="{{ URL::to('/login') }}">Login</a></li>
|
||||||
<li><a href="{{ URL::to('/register') }}">Register</a></li>
|
<li><a href="{{ URL::to('/register') }}">Register</a></li>
|
||||||
@endif
|
@endif --}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
@ -127,7 +134,8 @@
|
|||||||
<a href="#" class="search-switch"><img src="{{ URL::asset('img/icon/search.png') }}"
|
<a href="#" class="search-switch"><img src="{{ URL::asset('img/icon/search.png') }}"
|
||||||
alt=""></a>
|
alt=""></a>
|
||||||
<a href="#"><img src="{{ URL::asset('img/icon/heart.png') }}" alt=""></a>
|
<a href="#"><img src="{{ URL::asset('img/icon/heart.png') }}" alt=""></a>
|
||||||
<a href="#"><img src="{{ URL::asset('img/icon/cart.png') }}" alt="">
|
<a href="{{ URL::to('cart') }}"><img src="{{ URL::asset('img/icon/cart.png') }}"
|
||||||
|
alt="">
|
||||||
<span>0</span></a>
|
<span>0</span></a>
|
||||||
<div class="price">Rs 0.00</div>
|
<div class="price">Rs 0.00</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -120,6 +120,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="product__item__text">
|
<div class="product__item__text">
|
||||||
<h6>{{ $item->name }}</h6>
|
<h6>{{ $item->name }}</h6>
|
||||||
|
|
||||||
<a href="#" class="add-cart">+ Add To Cart</a>
|
<a href="#" class="add-cart">+ Add To Cart</a>
|
||||||
<div class="rating">
|
<div class="rating">
|
||||||
<i class="fa fa-star-o"></i>
|
<i class="fa fa-star-o"></i>
|
||||||
|
@ -9,6 +9,7 @@ Route::get('/about', [MainController::class, 'about']);
|
|||||||
Route::get('/blog', [MainController::class, 'blog']);
|
Route::get('/blog', [MainController::class, 'blog']);
|
||||||
Route::get('/blogDetails', [MainController::class, 'blogDetails']);
|
Route::get('/blogDetails', [MainController::class, 'blogDetails']);
|
||||||
|
|
||||||
|
Route::get('/cart', [MainController::class, 'cart']);
|
||||||
Route::post('/addToCart', [MainController::class, 'addToCart']);
|
Route::post('/addToCart', [MainController::class, 'addToCart']);
|
||||||
|
|
||||||
Route::get('/checkout', [MainController::class, 'checkout']);
|
Route::get('/checkout', [MainController::class, 'checkout']);
|
||||||
|
Loading…
Reference in New Issue
Block a user