دورة SYMFONY 4 للمبتدئين الدرس السابع

منذ 5 سنوات imadbelasri Symfony
SY

فهاد الدرس السابع من دورة SYMFONY 4 للمبتدئين غادي نكملوا الدورة ديالنا منبعد مازدنا les articles فقاعدة البيانات دبا غادي نشوفوا كيفاش نسترجعهم ونعرضهم فالصفحة hello.html.twig وأيضا غادي نشوفوا كيفاش نسترجعوا article بل id ديالو.


1- إسترجاع les articles من قاعدة البيانات

باش نسترجع les articles كاملين من قاعدة البيانات غادي نخدم بواحد الحاجة سميتها repository لي هي class symfony ولي فيها مجموعة ديال les fonctions لي كيمكنونا من استرجاع المعلومات من قاعدة البيانات.

غادي نمشي ل HelloController ف index غادي ندير تغيير على الكود كنزيد variable سميتها repository لي فيها ل fonction getRepository لي كتاخذ إسم ل Entity هنا عطيناها Article.

منبعد بل fonction findAll ديال repository كنسترجع les articles كاملين وكنرسلهم للصفحة hello.html.twig.

الكود لي زدنا ف HelloController هو :

                                                    
                                                        //
<?php

namespace App\Controller;
use App\Entity\Article;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class HelloController extends AbstractController
{
    /**
    * @Route("/hello")
    */
    public function index()
    {
        $repository = $this->getDoctrine()->getRepository(Article::class);
        $posts = $repository->findAll();

        return $this->render('hello.html.twig',[
            'posts' => $posts
        ]);
    }
}
                                                    
                                                

2- إسترجاع article بل id ديالو

دبا يلا مشيتي http://127.0.0.1:8000/hello غادي تلقى les articles لي عندنا فقاعدة البيانات هما لي عندنا كيف كتشوف فالصورة :



منبعد باش نسترجع article بل id ديالو غادي نزيد fonction show لي كتاخد ل id ديال ل article ومنبعد كنخدم بنفس الكود السابق كنبدل فقط ل fonction لي كتولي find وكنعطيها ل id.

ل article لي كنسترجع كنرسلو للصفحة show.html.twig لي غادي نزيدوها من بعد.

الكود لي زدنا ف HelloController هو :

                                                        
                                                            //
<?php

namespace App\Controller;
use App\Entity\Article;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class HelloController extends AbstractController
{
    /**
    * @Route("/hello")
    */
    public function index()
    {
        $repository = $this->getDoctrine()->getRepository(Article::class);
        $posts = $repository->findAll();

        return $this->render('hello.html.twig',[
            'posts' => $posts
        ]);
    }
    /**
     * @Route("/hello/show/{id}", name="article_show")
     */
    public function show($id){
        $repository = $this->getDoctrine()->getRepository(Article::class);
        $post = $repository->find($id);
        return $this->render('show.html.twig',['post'=>$post]);
    }
}
                                                        
                                                    

3- إضافة الصفحة الخاصة بعرض article

منبعد غادي نزيد fichier جديد ف templates سميه show.html.twig غادي يكون فيه الكود لي كيعرض ل article لي اختارينا ولي جانا من show.

فتقريبا نفس الكود فقط ال boucle لي حيدناها فيلا مشيتي ل http://127.0.0.1:8000/hello/show/1 هنا  كنعطي ل id واحد غادي نعرض ل article مول ل id واحد كيف كنشوف فالصورة :



الكود ديال show.html.twig هو :

                                                        
                                                            //
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}{{post.title}} !{% endblock %}</title>
        {% block stylesheets %}
            <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
        {% endblock %}
    </head>
    <body>
        <div class="container">
            {% block body %}
                <div class="row mt-4">
                    <div class="col-md-6 mx-auto">
                        <div class="card bg-light rounded">
                            <div class="container-fluid">
                                <h3 class="card-title text-default p-4">
                                    {{post.title}}
                                </h3>
                                <hr>
                            </div>
                            <div class="card-body mt-2 rounded">
                                {{post.body}}
                            </div>
                        </div>
                    </div>
                </div>
            {% endblock %}
        </div>
        {% block javascripts %}
            <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
            <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
        {% endblock %}
    </body>
</html>
                                                        
                                                    

دروس ذات صلة

SY

دورة symfony 4 للمبتدئين الدرس الأول

فهاد الدورة الجديدة ولي غادي نخصصوها ل symfony 4 بناءا على الطلب ديال العديد من الزوار ديال الموقع غ...


SY

دورة SYMFONY 4 للمبتدئين الدرس الثاني

فهاد الدرس الثاني من دورة SYMFONY 4 للمبتدئين غادي نكملوا الدورة ديالنا من بعد ماشفنا كيفاش نزي...


SY

دورة SYMFONY 4 للمبتدئين الدرس الثالت

فهاد الدرس الثالت من دورة symfony 4 للمبتدئين غادي نشوفوا البنية ديال واحد ل page twig وكيفاش symfon...


SY

دورة SYMFONY 4 للمبتدئين الدرس الرابع

فهاد الدرس الرابع من دورة SYMFONY 4 للمبتدئين غادي نكملوا الدورة ديالنا وغادي نشوفوا كيفاش نعرضوا مج...


SY

دورة SYMFONY 4 للمبتدئين الدرس الخامس

فهاد الدرس الخامس من دورة symfony 4 للمبتدئين غادي نشوفوا كيفاش نتعاملوا مع قواعد البيانات ف symfony...


SY

دورة SYMFONY 4 للمبتدئين الدرس السادس

فهاد الدرس السادس من دورة SYMFONY 4 للمبتدئين غادي نكملوا الدورة ديالنا منبعد ما زدنا قاعدة البيانات...


SY

دورة SYMFONY 4 للمبتدئين الدرس السابع

فهاد الدرس السابع من دورة SYMFONY 4 للمبتدئين غادي نكملوا الدورة ديالنا منبعد مازدنا les articl...


SY

دورة SYMFONY 4 للمبتدئين الدرس الثامن

فهاد الدرس الثامن من دورة symfony للمبتدئين غادي نكملو الدورة ديالنا منبعد مشفنا كيفاش زدنا المعلوما...


SY

دورة SYMFONY 4 للمبتدئين الدرس التاسع

فهاد الدرس التاسع من دورة symfony 4 للمبتدئين غادي نكملوا الدورة ديالنا من بعد ما زدنا الفورم فالدرس...


SY

دورة SYMFONY 4 للمبتدئين الدرس العاشر

فهاد الدرس التاسع من دورة symfony 4 للمبتدئين غادي نكملوا الدورة ديالنا وغادي نشوفوا كيفاش نديرو الت...