Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء الرابع

منذ 8 أشهر imadbelasri Laravel
LA

فهاد الجزء الجديد من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نزيدوا الصفحة الرئيسية لي غادي يكون فيها ل questions ول catégories وغادي نزيدوا navbar ب bootstrap.


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


1- إضافة Laravel Controller Home

غادي نزيدوا Laravel Controller نسميوه HomeController ولي فيه كنسترجع ل questions ول catégories ونرسلهم ل view Home.

الكود ديال الملف هو :

                                                    
                                                        //
<?php

namespace App\Http\Controllers;

use App\Models\Category;
use App\Models\Question;
use Illuminate\Http\Request;

class HomeController extends Controller
{
    //
    public function index(Category $category)
    {
        $questions = $category->questions->count() ?
            $category->questions()->paginate(10) : Question::latest()->paginate(10);
        $categories = Category::has('questions')->with('questions')
            ->get();
        return view('home')->with([
            'questions' => $questions,
            'categories' => $categories
        ]);
    }
}
                                                    
                                                

2- إضافة ل Main Layout

منبعد ف views زيد dossier layouts فيه زيد fichier app.blade.php لي هو ل fichier de base لي فيه روابط css و js.

الكود ديال الملف هو :

                                                        
                                                            //
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css" integrity="sha512-YWzhKL2whUzgiheMoBFwW8CKV4qpHQAEuvilg9FAn5VJUDwKZZxkJNuGM4XkWuk94WCrrwslk8yWNGmY1EduTA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    @yield('styles')
    <title>@yield('title')</title>
  </head>
  <body>
    @include('layouts.navbar')
    @yield('content')

    <!-- Optional JavaScript; choose one of the two! -->

    <!-- Option 1: Bootstrap Bundle with Popper -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
    @yield('scripts')
    <script src="{{ mix('/js/app.js') }}"></script>
    <!-- Option 2: Separate Popper and Bootstrap JS -->
    <!--
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
    -->
  </body>
</html>
                                                        
                                                    

3- إضافة Bootstrap 5 Navbar

دائما فنفس dossier layouts فيه زيد fichier navbar.blade.php لي فيه ل menu ديالنا.

الكود ديال الملف هو :

                                                        
                                                            //
<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="{{url('/')}}">Mini Stack</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="{{url('/')}}">Home</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Account
          </a>
          <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
            @guest
                <li><a class="dropdown-item" href="{{route('login')}}">Login</a></li>
                <li><a class="dropdown-item" href="{{route('register')}}">Register</a></li>
            @endguest
            @auth
                <li><hr class="dropdown-divider"></li>
                <li>
                    <form id="logoutForm" action="{{route('logout')}}" method="post">
                        @csrf
                    </form>
                    <a class="dropdown-item" href="#"
                        onclick="document.getElementById('logoutForm').submit()">Logout</a>
                </li>
            @endauth
          </ul>
        </li>
        @auth
        <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                Collectives
            </a>
            <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                <li>
                    <a class="dropdown-item" href="{{route('collectives.index')}}">
                        My Collectives
                    </a>
                </li>
                <li>
                    <a class="dropdown-item" href="{{route('collectives.create')}}">
                        Create Collective
                    </a>
                </li>
            </ul>
        </li>
        <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                Questions
            </a>
            <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                <li>
                    <a class="dropdown-item" href="{{route('questions.index')}}">
                        My Questions
                    </a>
                </li>
                <li>
                    <a class="dropdown-item" href="{{route('questions.create')}}">
                        Create Question
                    </a>
                </li>
            </ul>
        </li>
        @endauth
      </ul>
    </div>
  </div>
</nav>
                                                        
                                                    

4- إضافة ل Home Page

ف views زيد fichier home.blade.php لي هو الصفحة الرئيسية ديالنا.

الكود ديال الملف هو :

                                                        
                                                            //
@extends('layouts.app')


@section('title')
    Home | Mini Slack
@endsection

@section('content')
    <div class="container">
        <div class="row my-5">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">{{ __('Latest Questions') }}</div>

                    <div class="card-body">
                        <ul class="list-group">
                            @foreach ($questions as $question)
                                <li class="list-group-item d-flex justify-content-between">
                                    <a href="{{route('questions.show',$question)}}" class="text-decoration-none">
                                        {{$question->title}}
                                    </a>
                                    <a href="{{route('collectives.show',$question->collective)}}" class="text-decoration-none">
                                        <span class="badge bg-secondary p-2">
                                            {{$question->collective->title}}
                                        </span>
                                    </a>
                                </li>
                            @endforeach
                        </ul>
                        <div class="d-flex justify-content-center my-2">
                            {{$questions->links()}}
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-md-4">
                <div class="card">
                    <div class="card-header">{{ __('Categories') }}</div>

                    <div class="card-body">
                        <ul class="list-group">
                            @foreach ($categories as $category)
                                <li class="list-group-item d-flex justify-content-between">
                                    <a href="{{route('home',$category)}}" class="text-decoration-none">
                                        {{$category->name}}
                                    </a>
                                </li>
                            @endforeach
                        </ul>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection
                                                        
                                                    

دروس ذات صلة

LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء الأول

فهاد ل projet الجديد غادي نقادو Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija المستخدم كيز...


LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء الثاني

فهاد الجزء الثاني من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نزيدو Login & Logo...


LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء الثالت

فهاد الجزء الثالت من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نكملوا الجزء الخاص...


LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء الخامس

فهاد الجزء الخامس من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نزيدوا ل models دي...


LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء السادس

فهاد الجزء السادس من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نزيدو ل collective...


LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء السابع

فهاد الجزء السابع من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نزيدو ل questions...


LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء الثامن

فهاد الجزء الثامن من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نزيدوا Vuejs ل pro...


LA

Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija الجزء التاسع

فهاد الجزء التاسع والأخير من Mini Stack Overflow ب Laravel 8 Darija & Vuejs 2 Darija غادي نشارجيو ل...