Ecommerce App ب laravel & stripe paiement الجزء الخامس
نظرة سريعة بالفيديو
1- الملف routes/web.php
<?php
use App\Product;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
$products = Product::all();
return view('home',compact('products'));
});
Route::post('/cart/add',[
'uses'=> 'ShopController@add_to_cart',
'as' => 'cart.add'
]);
Route::get('/cart',[
'uses'=> 'ShopController@cart',
'as' => 'cart.index'
]);
Route::get('/cart/remove/{id}',[
'uses'=> 'ShopController@cart_delete',
'as' => 'cart.delete'
]);
Route::get('/cart/dec/{id}/{qte}',[
'uses'=> 'ShopController@cart_dec',
'as' => 'cart.decrease'
]);
Route::get('/cart/inc/{id}/{qte}',[
'uses'=> 'ShopController@cart_inc',
'as' => 'cart.increase'
]);
Route::get('/cart/checkout',[
'uses'=> 'CheckoutController@index',
'as' => 'cart.checkout'
]);
Route::post('/cart/pay',[
'uses'=> 'CheckoutController@pay',
'as' => 'cart.pay'
]);
Route::get('/products/add',[
'uses'=> 'ProductsController@create',
'as' => 'product.create'
]);
Route::post('/products/update/{id}',[
'uses'=> 'ProductsController@update',
'as' => 'product.update'
]);
Route::get('/products/{id}/delete',[
'uses'=> 'ProductsController@destroy',
'as' => 'product.delete'
]);
Route::get('/users/login',[
'uses'=> 'UsersController@login',
'as' => 'users.login'
]);
Route::get('/users/logout',[
'uses'=> 'UsersController@logout',
'as' => 'users.logout'
]);
Route::post('/users/auth',[
'uses'=> 'UsersController@auth',
'as' => 'users.auth'
]);
Route::resource('/products','ProductsController');
Route::resource('/users','UsersController');
2- الملف home.blade.php
@extends ('includes.main-layout')
@section('styles')
@endsection
@section('header')
@include('includes.header')
@endsection
@section('content')
<div class="row mt-4">
@include('includes.errors')
@foreach($products as $product)
<div class="col-4">
<div class="card mb-2" style="width: 18rem;">
<img class="card-img-top" height="200" src="{{URL::to('images/'.$product->file)}}" alt="Produit">
<div class="card-body">
<h5 class="card-title">{{$product->name}}</h5>
<p class="card-text">{{$product->prix}} DH</p>
<a href="{{route('products.show',['id'=>$product->id])}}" class="btn btn-primary btn-block">Voir</a>
</div>
</div>
</div>
@endforeach
</div>
@endsection
@section('footer')
@endsection
@section('scripts')
@endsection
3- الملف includes/errors.blade.php
@if(Session::has('fail'))
<div class="alert alert-danger">
{{Session::get('fail')}}
</div>
@endif
@if(Session::has('success'))
<div class="alert alert-success">
{{Session::get('success')}}
</div>
@endif
@if(Session::has('info'))
<div class="alert alert-info">
{{Session::get('info')}}
</div>
@endif
@if(count($errors) > 0)
@foreach($errors->all() as $error)
<div class="alert alert-danger">{{$error}}</div>
@endforeach
@endif
4- الملف style.css
body{
font-family: 'Raleway',Verdana, Geneva, Tahoma, sans-serif;
}
.table{
width: 100%;
}
5- الملف main.js
$(function(){
var qte = $('#qte').val();
var min = $('#moins');
var plus = $('#plus');
min.on('click',function(){
$('#qte').val(qte-=1);
});
plus.on('click',function(){
qte = parseInt(qte);
$('#qte').val(qte+=1);
});
});