blog احترافي ب laravel 5.4 الجزء السادس


فهاد الجزء السادس من blog احترافي ب laravel 5.4  غادي نكملو الملف لي غادي يكون الصفحة الرئيسية ديال les tags ولي غادي تكون فيه الروابط لي كتمكن الأدمن من إضافة تعديل او حدف tag كما غادي نزيدو الملف لي غادي يكون فيه الكود لي كيمكن من عرض les posts الخاصين ب catégorie اختارها المستخدم والملف لي غادي يمكن من عرض النتائج ديال البحث على des posts بحث عليهم المستخدم والملف لي غادي يمكن من مشاهدة post والمعلومات الخاصة به.

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

1- الملف admin/tags/index.blade.php

دائما فالمجلد tags فيه كنزيد ملف جديد سميه index.blade.php هادا الملف لي غادي يتعرضوا فيه les tags لي عندنا ولي غادي يكون عند الأدمن الصلاحية باش يمسح tag أو يزيد وكاين tags لي كيجيونا من ل fonction index لي كاينة فالملف TagsController.php وكنخدم ب foreach باش كنعرض كل المعلومات فبلاصتها بالإضافة للروابط لي كيمكنوا الأدمن من تعديل وحدف tag الكود ديال الملف هو :


                                @extends('layouts.app-layout')

@section('styles')

@endsection

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

@section('content')
    <div class="row">
        @include('includes.sidebar')
        <div class="col-md-6 col-md-offset-1">
            <table class="table">
                <thead>
                    <tr>
                        <th>Id</th>
                        <th>Tag</th>
                        <th>Actions</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach($tags as $tag)
                        <tr>
                           <td>{{$tag->id}}</td>
                           <td>{{$tag->name}}</td>
                           <td>
                             <a href="{{route('tags.edit',$tag->id)}}" class="btn btn-warning btn-xs">Modifier</a>
                             <a href="{{route('tags.destroy',$tag->id)}}" class="btn btn-danger btn-xs">Supprimer</a>
                           </td>
                        </tr>
                    @endforeach
                </tbody>
            </table>
        </div>
    </div>
@endsection

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

@section('scripts')

@endsection

                            

2- الملف category-post.blade.php

فالمجلد الرئيسي ديالنا لي هو views كنزيد ملف جديد كنسميه category-post.blade.php فيه كنستقبل الفئة ل اختار المستخدم ولي كتجيني من ل fonction postByCategory لي كاينة فالملف PostsController.php منبعد بفضل la relation لي درنا مابين الجدول categories و posts كنعرض les posts الخاصين بداك ل catégorie وكنخدم ب foreach باش كنعرض المعلومات كاملة الكود ديال الملف هو :


                                @extends('layouts.app-layout')

@section('styles')

@endsection

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

@section('content')
    <div class="row">
        <div class="col-md-8 col-md-offset-3">
            <div align="center">
                <ul class="nav navbar-nav second-menu">
                  @foreach($categories as $cat)
                      <li><a href="{{route('post.by.category',['id'=>$cat->id])}}">{{$cat->name}}</a></li>
                  @endforeach
                </ul>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
                <div class="row">
                  <h2 class="text-info">{{$categorie->name}} <span class="badge">{{$categorie->posts()->count()}}</span></h2>
                     <hr>
                     @foreach($categorie->posts as $post)
                        <div class="col-md-4">
                           <div class="media">
                              <div class="media-body">
                                    <h4 class=""><a href="{{route('post.show',['id'=>$post->slug])}}">{{$post->title}}</a></h4>
                                    <img src="{{URL::to('images/'.$post->image)}}" alt="" height="300" width="300">
                                    <p class="lead">{{str_limit($post->body)}}</p>
                              </div>
                              <div class="media-footer">
                                  <span class="label label-default">{{$post->user->name}}</span>
                                  <span class="label label-primary">{{$post->created_at->diffForHumans()}}</span>
                                  <span class="label label-success">{{$post->category->name}}</span>
                              </div>  
                           </div>
                        </div>
                     @endforeach
                </div>
         </div>
    </div>
@endsection

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

@section('scripts')

@endsection

                            

3- الملف result.blade.php

فالمجلد الرئيسي ديالنا لي هو views كنزيد ملف جديد كنسميه result.blade.php فيه كيتعرضوا النتائج ديال les posts لي بحث عليهم المستخدم ولي كيجيونا من الرابط أو ل url /search ولي غادي نشوفوه فالملف الخاص ب les routes ديالنا من بعد فمن بعد مكنستقبل les posts لي تلقاو كنخدم ب foreach باش كنعرض المعلومات كاملة ويلا ملقا حتى شي post كنعرض رسالة بلي الpost لي كتبحث عليه غير موجود الكود ديال الملف هو :

                                @extends('layouts.app-layout')

@section('styles')

@endsection

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

@section('content')
    <div class="row">
        <div class="col-md-8 col-md-offset-3">
            <div align="center">
                <ul class="nav navbar-nav second-menu">
                  @foreach($categories as $categorie)
                      <li><a href="{{route('post.by.category',['id'=>$categorie->id])}}">{{$categorie->name}}</a></li>
                  @endforeach
                </ul>
            </div>
        </div>
    </div>
    @if($posts->count() > 0)
    <div class="row">
        <div class="col-md-12">
                <h2 class="text-info">Résultat pour: <span class="text-danger">{{request('search')}}</span></h2>
                <hr>
                <div class="row">                     
                    @foreach($posts as $post)
                    <div class="col-md-4">
                        <div class="media">
                            <div class="media-body">
                                <h4 class=""><a href="{{route('post.show',['id'=>$post->slug])}}">{{$post->title}}</a></h4>
                                <img src="{{URL::to('images/'.$post->image)}}" alt="" height="300" width="300">
                                <p class="lead">{{str_limit($post->body)}}</p>
                            </div>
                            <div class="media-footer">
                                <span class="label label-default">{{$post->user->name}}</span>
                                <span class="label label-primary">{{$post->created_at->diffForHumans()}}</span>
                                <span class="label label-success">{{$post->category->name}}</span>
                            </div>  
                        </div>
                    </div>
                    @endforeach
             </div>
        </div>
    </div>
    @else
    <div class="alert alert-info">
        Aucun résultat trouvé
    </div>
    @endif
@endsection

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

@section('scripts')

@endsection

                            

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

دائما فالمجلد الرئيسي ديالنا لي هو views كنزيد ملف جديد كنسميه view.blade.php فيه كيتعرضوا المعلومات الخاصة ب post لي اختارو المستخدم ولي كيجيونا من fonction show ولي عندنا فالملف PostsController.php فمنبعد مكنستقبل ل post كنعرض المعلومات ديالو كاملة الكود ديال الملف هو :

                                    @extends('layouts.app-layout')

@section('styles')

@endsection

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

@section('content')
    <div class="row">
        <div class="col-md-8 col-md-offset-3">
            <div align="center">
                <ul class="nav navbar-nav second-menu">
                  @foreach($categories as $categorie)
                      <li><a href="{{route('post.by.category',['id'=>$categorie->id])}}">{{$categorie->name}}</a></li>
                  @endforeach
                </ul>
            </div>
        </div>
    </div>
    <div class="row" style="margin-top:50px">
        <div class="col-md-10 col-md-offset-1">
            <div class="media" align="center">
                <div class="media-body">
                      <h4 class="text-center text-primary">{{$post->title}}</h4>
                      <img src="{{URL::to('images/'.$post->image)}}" class="thumbnail" alt="" height="600" width="800">
                      <p class="lead">{{$post->body}}</p>
                </div>
                <div class="media-footer">
                    <span class="label label-primary">{{$post->created_at->diffForHumans()}}</span>
                    <span class="label label-success">{{$post->category->name}}</span>
                </div>
                <div class="lead pull-left">
                    <strong class="text-warning">Tags:</strong>
                    @foreach($post->tags as $tag)
                      <span class="label label-danger">{{$tag->name}}</span>
                    @endforeach
                </div>
            </div>
        </div>
    </div>
    <hr>
    <div class="row">
        <div class="col-md-4 col-md-offset-1">
            <div class="row">
                <div class="col-md-4">
                    <img src="{{URL::to('avatars/'.$post->user->profile->image)}}" alt="" class="circle" width="60" height="60">
                </div>
                <div class="col-md-6">
                    <p class="label label-info">{{$post->user->name}}</p>
                </div>
            </div>
        </div>
    </div>
    <hr>
    @if($next)
       <a href="{{route('post.show',['id'=>$next->slug])}}" class="btn-link pull-right">Suivant</a>
    @endif
    @if($previous)
       <a href="{{route('post.show',['id'=>$previous->slug])}}" class="btn-link">Précedent</a>
    @endif
@endsection

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

@section('scripts')

@endsection

                                

5- الملف HomeController.php

كنمشي ل app/Http/Controllers كنزيد ملف جديد كنسميه HomeController.php لي غادي تكون فيه fonction index لي كتسترجع les catégories كاملين من قاعدة البيانات وكتسترجع أخر post تزاد بالإضافة لكل catégorie بوحدها وكترسلهم للملف index لي غادي يكون هو الصفحة الرئيسية لي كيشوفوها الزوار ديال الblog ديالنا ولي غادي نزيدوه من بعد الكود النهائي هو :

                                    <?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Category;
use App\Post;
class HomeController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        return view('index')->with(['categories'=>Category::all(),
                                    'postOne'=>Post::orderBy('created_at','DESC')->get()->first(),
                                    'laravel'=>Category::find(4),
                                    'android'=>Category::find(5),
                                    'html'=>Category::find(6),
                                    'css'=>Category::find(7)]);
    }
}

                                


بحث في الموقع


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