موقع ecommerce بإستعمال laravel الجزء الثالت

فهاد الجزء الثالت من موقع ecommerce بإستعمال laravel غادي نكملو الملفات الخاصة بعرض المنتوجات ديالنا وأيضا لي غادي تمكن من عرض منتوج اختارو المستخدم والملف لي غادي يمكن من عرض المعلومات ديال منتوج حسب فئة اختارها المستخدم.

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


1- الملف Category.php


ف app كنزيد ملف كنسميه Category.php هادا لي غادي يمكني باش نديرla relation ما بين les produits و les catégories ديالهم هنا كاين la fonction products لي كتقول بأن كل catégorie عندها بزاف ديال les produits الكود ديال الملف هو :

                                    
                                        <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    //
    public function products(){
       return $this->hasMany('App\Product');
    }
}
                                    
                                

2- الملف index.blade.php


منبعد ف views كنزيد مجلد جديد كنسميه products فيه زيد ملف جديد سميه index.blade.php هادا الملف لي فيه الكود لي كيمكن من عرض جميع المنتوجات لي عندنا فقاعدة البيانات من بعد مكنستقبلوهم من fonction index لي فProductsController.php كنخدم بforeach لي كتمكني من عرض كل معلومة خاصة بكل منتوج فبلاصتها الكود ديال الملف هو :

                                    
                                        @extends('layouts.includes.main-index')

@section('content')
       
<div class="row" style="margin-top:50px">
    <div class="col-md-12">
        <div class="panel panel-primary">
            <div class="panel-heading">Produits</div>
            <div class="row" style="margin:10px;">
            @foreach($products as $product)
                <div class="col-md-3">
                    <a href="{{route('product.show',$product->id)}}">
                        <div class="thumbnail">
                            <img src="{{URL::to('/images/'.$product->image)}}" height="200" width="200" alt="...">
                            <div class="caption">
                                <h3>{{$product->titre}}</h3>
                                <p>{{$product->description}}</p>
                                <p><span class="label label-primary">{{$product->prix}} dh</span> <strike class="label label-danger"></strike></p>
                                <p><a href="{{route('product.show',['id'=>$product->id])}}" class="btn btn-primary" role="button">Voir</a></p>
                            </div>  
                        </div>
                    </a>
                </div>  
            @endforeach
            </div>
        </div>
    </div>
</div>
@endsection
                                    
                                

3- الملف product-cat.blade.php


دائما فproducts فيه زيد ملف جديد سميه product-cat.blade.php هادا الملف لي فيه الكود لي كيمكن من عرض المنتوجات حسب الفئة لي اختار المستخدم من بعد مكنستقبلوهم من fonction productByCat لي فProductsController.php كنخدم بforeach لي كتمكني من عرض كل معلومة خاصة بكل منتوج فبلاصتها الكود ديال الملف هو :

                                      
                                        @extends('layouts.includes.main-index')

@section('content')
       
<div class="row" style="margin-top:50px">
    <div class="col-md-8">
        <div class="panel panel-primary">
            <div class="panel-heading">{{$categorie->titre}}</div>
            <div class="row" style="margin:10px;">
            @foreach($products as $product)
                <div class="col-md-3">
                    <a href="{{route('product.show',$product->id)}}">
                        <div class="thumbnail">
                            <img src="{{URL::to('/images/'.$product->image)}}" height="200" width="200" alt="...">
                            <div class="caption">
                                <h3>{{$product->titre}}</h3>
                                <p>{{$product->description}}</p>
                                <p><span class="label label-primary">{{$product->prix}} dh</span> <strike class="label label-danger"></strike></p>
                                <p><a href="{{route('product.show',['id'=>$product->id])}}" class="btn btn-primary" role="button">Voir</a></p>
                            </div>  
                        </div>
                    </a>
                </div>  
            @endforeach
            </div>
        </div>
    </div>
</div>
@endsection
                                      
                                    

4- الملف show.blade.php


دائما فproducts فيه زيد ملف جديد سميه show.blade.php هادا الملف لي فيه الكود لي كيمكن من عرض المعلومات الخاصة بمنتوج اختارو المستخدم من بعد مكنستقبلوهم من fonction show لي فProductsController.php وأيضا فيه الكود لي كيمكن من إضافة المنتوج للpanier الكود ديال الملف هو :

                                        
                                            @extends('layouts.includes.main-index')

@section('content')
       
<div class="row" style="margin-top:50px">
    <div class="col-md-8">
        <div class="panel panel-primary">
            <div class="panel-heading">Produits</div>
            <div class="row" style="margin:10px;">
                <div class="col-sm-12 col-md-10 col-md-offset-1">
                    <div class="thumbnail">
                        <img src="{{URL::to('/images/'.$product->image)}}" alt="...">
                        <div class="caption">
                            <h3 class="text-center">{{$product->titre}}</h3>
                            <p class="text-center">{{$product->description}}</p>
                            <p class="text-center"><span class="label label-primary">{{$product->prix}} dh</span> <strike class="label label-danger"></strike></p>
                            <form action="{{route('product.add.cart')}}" method="post" class="text-center">
                                <div class="form-group">
                                    <label for="qte">Qté</label>
                                    <input type="text" size="1" name="qte" value="1">
                                    <input type="hidden"  name="id" value="{{$product->id}}">
                                    <input type="hidden"  name="titre" value="{{$product->titre}}">
                                    <input type="hidden"  name="prix" value="{{$product->prix}}">
                                    <input type="hidden"  name="_token" value="{{csrf_token()}}">
                                </div>
                                <div class="form-group">
                                    <button type="submit" name="submit" class="btn btn-success">Ajouter au panier</button>
                                </div>
                            </form>
                        </div>  
                    </div>
                </div>  
            </div>
        </div>
    </div>
</div>
@endsection
                                        
                                    

5- الملف index.blade.php


فالمجلد views كنزيد ملف جديد كنسميه index.blade.php هادا هو الملف ديال الصفحة الرئيسية ديالنا لي فيه الكود لي كيمكن من عرض المنتوجات لي ترسلونا من لfonction index لي فHomeController.php وأيضا الفئات وعدد المنتوجات لي فكل فئة بالإضافة للمنتوجات الأكثر مبيعا وهادشي كامل ترسل من fonction index لي فHomeController.php الكود ديال الملف هو :

                                        
                                            @extends('layouts.includes.main-index')

@section('content')
       
<div class="row" style="margin-top:50px">
    <div class="col-md-8">
        <div class="panel panel-primary">
            <div class="panel-heading">Produits</div>
            <div class="row" style="margin:10px;">
            @foreach($products as $product)
                <div class="col-md-4">
                    <a href="{{route('product.show',$product->id)}}">
                        <div class="thumbnail">
                            <img src="{{URL::to('/images/'.$product->image)}}" height="200" width="200" alt="...">
                            <div class="caption">
                                <h3>{{$product->titre}}</h3>
                                <p>{{$product->description}}</p>
                                <p><span class="label label-primary">{{$product->prix}} dh</span> <strike class="label label-danger"></strike></p>
                                <p><a href="{{route('product.show',['id'=>$product->id])}}" class="btn btn-primary" role="button">Voir</a></p>
                            </div>  
                        </div>
                    </a>
                </div>  
            @endforeach
            <div>
                {{$products->links()}}
            </div>
            </div>
        </div>
    </div>
    <div class="col-md-4">
        <div class="row">
             <div class="col-md-12">
                <div class="panel panel-primary">
                   <div class="panel-heading">Catégories</div>
                    <ul class="list-group">
                        @foreach($categories as $categorie)
                        <li class="list-group-item">
                            <span class="badge">{{$categorie->products->count()}}</span>
                            <a href="{{route('products.categorie',['categorie'=>$categorie->id])}}">{{$categorie->titre}}</a>
                        </li>
                        @endforeach
                    </ul>
                <div>
            </div>
        </div>
        <div class="row">
             <div class="col-md-12">
                <div class="panel panel-primary">
                   <div class="panel-heading">Les plus vendus</div>
                    <ul class="list-group">
                    @foreach($bestSold as $product)
                        <li class="list-group-item">
                            <span class="badge">{{$product->vendu}}</span>
                             <a href="{{route('product.show',['id'=>$product->id])}}">{{$product->titre}}</a>
                        </li>
                    @endforeach
                    </ul>
                <div>
            </div>
        </div>
    </div>
</div>
@endsection
                                        
                                    

كلمات مفاتيح :