Ecommerce App ب laravel & stripe paiement الجزء الثاني


فهادالجزء الثاني من Ecommerce App ب laravel & stripe paiement غاي نكملو الملفات الخاصين ب les produits غادي نشوفو الملف لي غادي يمكن من تعديل produit ولي غادي يمكن من عرض المعلومات الخاصة ب produit اختارو المستخدم وايضا الملف الرئيسي لي غادي يعرض les produits كاملين للأدمن ولي غادي يكونوا فيه روابط التعديل والحدف.

نظرة سريعة بالفيديو

1- الملف admin/products/edit.blade.php

فالمجلد admin/products فيه زيد ملف جديد سميه edit.blade.php هادا الملف لي فيه الفورم لي كتمكن الأدمن من تعديل produit فمنبعد مكيدخل المعلومات الجديدة ديالو فالحقول هاد المعلومات كتمشي لل fonction update لي كاينة ف ProductsController.php وكاين أيضا الكود لي كيعرض رسائل الخطأ يلا كان شي حقل فارغ الكود ديال الملف هو :

                                @extends ('includes.main-layout')

@section('styles')

@endsection

@section('header')
    @include('includes.admin-header')
@endsection

@section('content')
    <div class="row">
        <div class="col-md-6 mx-auto">
            <div class="card mt-4">
            @include('includes.errors')
                <div class="card-body">
                    <h3 class="card-title text-primary">Modifier un produit</h3>
                    <hr>
                    <form action="{{route('product.update',['id'=>$product->id])}}" method="post">
                        <div class="form-group">
                            <label for="name">Libellé*</label>
                            <input type="text" name="name" class="form-control" id="name" value="{{$product->name}}" placeholder="Libellé">
                            <input type="hidden" name="_token" class="form-control" value="{{csrf_token()}}">
                        </div>
                        <div class="form-group">
                            <label for="price">Prix*</label>
                            <input type="text" name="price" class="form-control" id="price" value="{{$product->prix}}" placeholder="Prix">
                        </div>
                        <div class="form-group">
                            <button class="btn btn-primary" type="submit">Valider</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
@endsection

@section('footer')

@endsection

@section('scripts')

@endsection
                            

2- الملف admin/products/show.blade.php

فالمجلد admin/products فيه زيد ملف جديد سميه show.blade.php هادا الملف لي كيتعرضوا فيه المعلومات الخاصين ب produit اختارو المستخدم فل id كيمشي لل fonction show لي كاينة ف ProductsController.php منبعد كنسترجع به ل produit لي كيترسل للملف show ومنبعد كنعرض المعلومات ديالو مع لفورم لي كتمكن من إضافتو لل panier يلا بغاه المستخدم والجزء الخاص بل panier غادي نشوفوه من بعد الكود ديال الملف هو :

                                @extends ('includes.main-layout')

@section('styles')

@endsection

@section('header')
    @include('includes.header')
@endsection

@section('content')
    <div class="row mt-4">
    @include('includes.errors')
        <div class="col-md-6">
            <img class="card-img-top" height="200" width="150" src="{{URL::to('images/'.$product->file)}}" alt="Produit">
        </div>
        <div class="col-md-6 mt-4">
            <h5 class="card-title">{{$product->name}}</h5>
            <p class="card-text">{{$product->prix}} DH</p>
            <form action="{{route('cart.add')}}" method="post">
                <input type="hidden" name="_token" value="{{csrf_token()}}">
                <div class="qte mb-2">
                    <a href="#" class="btn btn-dark" id="moins">-</a>
                    <input type="text" style="width:8%;text-align:center;padding:5px;" id="qte" name="qte" value="0">
                    <a href="#" class="btn btn-dark" id="plus">+</a>
                    <input type="hidden" name="product_id" value="{{$product->id}}">
                </div>
                <button type="submit" class="btn btn-primary">Ajouter au panier</button>
            </form>
        </div>
    </div>
@endsection

@section('footer')

@endsection

@section('scripts')

@endsection
                            

3- الملف admin/products/index.blade.php

فالمجلد admin/products فيه زيد ملف جديد سميه index.blade.php هادا الملف لي كيتعرضوا فيه  les produits لي عندنا فقاعدة البيانات ولي كيجيونا من ل fonction index لي كاينة ف ProductsController.php منبعد مكنسترجعهم كنخدم ب foreach باش كنعرضهم ف table مع روابط التعديل والحدف فهاد الملف خاص بالأدمن فقط منبعد غادي نشوفوا الملف الخاص بالمستخدم العادي الكود ديال الملف هو :

                                @extends ('includes.main-layout')

@section('styles')

@endsection

@section('header')
    @include('includes.admin-header')
@endsection

@section('content')
    <div class="row">
        <div class="col-md-6 mx-auto">
        @include('includes.errors')
            <div class="card mt-4">
                <div class="card-body">
                    <h3 class="card-title text-primary">Produits</h3>
                    <hr>
                    <table class="table table-hover table-inverse table-responsive mx-auto">
                        <thead class="thead-default">
                            <tr>
                                <th>Libellé</th>
                                <th>Prix</th>
                                <th>Image</th>
                                <th>Action</th>
                            </tr>
                            </thead>
                            <tbody>
                                @foreach($products as $product)
                                <tr>
                                    <td scope="row">{{$product->name}}</td>
                                    <td>{{$product->prix}} dh</td>
                                    <td><img src="{{URL::to('images/'.$product->file)}}" class="img-fluid" alt="" height="50" width="50"></td>
                                    <td><a href="{{route('product.delete',['id'=>$product->id])}}" class="btn btn-danger btn-xs"><i class="fa fa-trash"></i></a> <a href="{{route('products.edit',['id'=>$product->id])}}" class="btn btn-warning btn-xs"><i class="fas fa-pencil-alt"></i></a></td>
                                </tr> 
                                @endforeach
                            </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
@endsection

@section('footer')

@endsection

@section('scripts')

@endsection
                            

4- الملف includes/main-layout.blade.php

فالمجلد views زيد مجلد جديد سميه includes فيه زيد ملف جديد سميه main-layout.blade.php هادا الملف لي فيه روابط css وjavascript ولي غادي يكون la base ديال les pages كاملين ديالنا وفيه ايضا كندير include لل header لي غادي تكون فيه لقائمة ديال التصفح ولي غادي نزيدوه من بعد الكود ديال الملف هو :

                                    <!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="{{URL::to('css/bootstrap.min.css')}}">
    <link rel="stylesheet" href="{{URL::to('css/fontawesome-all.css')}}">
    <link rel="stylesheet" href="{{URL::to('css/style.css')}}">
    <link href="https://fonts.googleapis.com/css?family=Raleway:100,100i,300,300i,400,400i,700,700i,900,900i" rel="stylesheet">
    @yield('styles')
    <title>Ecommerce Laravel</title>
</head>
<body>
    @yield('header')
    <div class="container">
        @yield('content')
    </div>
    @yield('footer')
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="{{URL::to('js/bootstrap.min.js')}}"></script>
    <script src="{{URL::to('js/main.js')}}"></script>
    @yield('scripts')
</body>
</html>
                                

5- الملف includes/header.blade.php

فالمجلد includes فيه زيد ملف جديد سميه header.blade.php هادا الملف لي فيه لقائمة ديال التصفح ولي غادي تمكنا من التنقل بين الصفحات وعندي الجزء الخاص بالأدمن لي كيبان يلا كان لي مكونيكطي أدمن والجزء الخاص بالمستخدم العادي وكاين أيضا الكود لي كيعرض شحال عند المستخدم الحالي من produit فل panier ولي فالوقت الحالي مغادي تعطيك والو حيت خص نزيدو واحد library لي خاصة بل panier من بعد الكود ديال الملف هو :

                                    <nav class="navbar navbar-expand-sm navbar-dark bg-dark">
    <a class="navbar-brand" href="#">Ecommerce</a>
    <button class="navbar-toggler hidden-lg-up" type="button" data-toggle="collapse" data-target="#collapsibleNavId" aria-controls="collapsibleNavId"
        aria-expanded="false" aria-label="Toggle navigation"></button>
    <div class="collapse navbar-collapse" id="collapsibleNavId">
        <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
            <li class="nav-item active">
                <a class="nav-link" href="{{url('/')}}"><i class="fa fa-home"></i> Accueil <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Produits</a>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="dropdownId" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Compte</a>                
                <div class="dropdown-menu" aria-labelledby="dropdownId">
                <a class="dropdown-item" href="{{route('cart.index')}}"><i class="fas fa-cart-arrow-down"></i>  {{Cart::content()->count()}}</a>  
                @if(Auth::user())
                    @if(Auth::user()->isAdmin())
                        <a class="dropdown-item" href="{{route('products.index')}}">Admin</a>  
                    @endif
                    <a class="dropdown-item" href="{{route('users.logout')}}">Déconnexion</a>  
                @else
                    <a class="dropdown-item" href="{{route('users.create')}}">Inscription</a>
                    <a class="dropdown-item" href="{{route('users.login')}}">Connexion</a>  
                </div>
                @endif
            </li>
        </ul>
    </div>
</nav>
                                


بحث في الموقع


إشترك للتوصل بالجديد