{"id":23844,"date":"2021-05-07T16:19:00","date_gmt":"2021-05-07T13:19:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23844"},"modified":"2021-10-18T02:20:34","modified_gmt":"2021-10-17T23:20:34","slug":"meilleure-facon-de-creer-un-controleur-laravel-pour-les-operations-crud","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/meilleure-facon-de-creer-un-controleur-laravel-pour-les-operations-crud\/","title":{"rendered":"Meilleure fa\u00e7on de cr\u00e9er un contr\u00f4leur Laravel pour les op\u00e9rations CRUD"},"content":{"rendered":"<p>Laravel travaille sur le mod\u00e8le architectural MVC (Model-View-Controller). Si vous ex\u00e9cutez une application sur le framework Laravel, vous devez cr\u00e9er un mod\u00e8le, une vue et des contr\u00f4leurs pour votre application.<\/p>\n<p>Dans Laravel, on peut cr\u00e9er un contr\u00f4leur et un mod\u00e8le via une interface de ligne de commande. Laravel artisan est l&rsquo;interface de ligne de commande qui fournit un certain nombre de commandes qui nous aident \u00e0 cr\u00e9er l&rsquo;application. Nous pouvons et devons cr\u00e9er un contr\u00f4leur en utilisant la commande artisan.<\/p>\n<h3>Cr\u00e9er un contr\u00f4leur Laravel<\/h3>\n<p>Disons que vous travaillez sur le back-end et que vous souhaitez effectuer des op\u00e9rations CRUD sur les pages. Cela signifie que vous devez cr\u00e9er un syst\u00e8me pour g\u00e9rer les pages qui comprend la cr\u00e9ation, la r\u00e9cup\u00e9ration, la mise \u00e0 jour et la suppression de pages. Bien s\u00fbr, pour cette t\u00e2che, vous devez cr\u00e9er un contr\u00f4leur.<\/p>\n<p>Normalement, les gens ex\u00e9cutent la commande <code>php artisan make:controller PageController<\/code>. Cette commande g\u00e9n\u00e8re un fichier <code>PageController.php<\/code>dans le r\u00e9pertoire app\/Http\/Controllers.<\/p>\n<p><strong>Remarque<\/strong>: Vous devez ex\u00e9cuter cette commande dans le r\u00e9pertoire racine d&rsquo;un projet \u00e0 l&rsquo;aide de l&rsquo;interface de ligne de commande.<\/p>\n<p><strong>PageController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/\/\n}<\/code><\/pre>\n<p>Dans ce contr\u00f4leur g\u00e9n\u00e9r\u00e9, vous devez \u00e9crire des m\u00e9thodes et d\u00e9finir les routes en cons\u00e9quence. Pour chaque m\u00e9thode, vous devez \u00e9crire une route distincte.<\/p>\n<p>Par exemple. ajoutons une m\u00e9thode <code>index()<\/code>et d\u00e9finissons une route pour elle.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0public function index() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/do operations here\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Pour appeler cette <code>index()<\/code>fonction dans le fichier de route, nous devons ajouter le code ci-dessous.<\/p>\n<p><strong>itin\u00e9raires\/web.php<\/strong><\/p>\n<pre><code>Route::get('pages', 'PageController@index');<\/code><\/pre>\n<p>Le m\u00eame processus s&rsquo;appliquera pour chaque m\u00e9thode suppl\u00e9mentaire.<\/p>\n<p>Il n&rsquo;y a rien de mal avec ce flux. Mais ce n&rsquo;est pas une m\u00e9thode recommand\u00e9e. Derri\u00e8re la popularit\u00e9 de Laravel, il y a plusieurs raisons. L&rsquo;une des raisons est leurs puissantes commandes artisanales avanc\u00e9es.<\/p>\n<h3>Meilleure fa\u00e7on de cr\u00e9er un contr\u00f4leur Laravel<\/h3>\n<p>Dans Laravel, nous n&rsquo;avons pas besoin d&rsquo;\u00e9crire chaque m\u00e9thode et de d\u00e9finir une route distincte pour chaque m\u00e9thode. En utilisant la commande artisan, nous pouvons g\u00e9n\u00e9rer un contr\u00f4leur avec des m\u00e9thodes pr\u00e9d\u00e9finies. Et juste en \u00e9crivant une seule route, Laravel appelle automatiquement les m\u00e9thodes appropri\u00e9es.<\/p>\n<p>Cela dit, ouvrez votre interface de ligne de commande dans le r\u00e9pertoire racine de votre projet et ex\u00e9cutez la commande ci-dessous. Gardez une note, cette fois, nous ajoutons \u2013resource \u00e0 notre commande make:controller.<\/p>\n<pre><code>php artisan make:controller PageController --resource<\/code><\/pre>\n<p>Maintenant, le g\u00e9n\u00e9r\u00e9 <code>PageController.php<\/code>ressemble \u00e0 ci-dessous.<\/p>\n<p><strong>PageController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass PageController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Display a listing of the resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Show the form for creating a new resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function create()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Store a newly created resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Display the specified resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function show($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Show the form for editing the specified resource.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function edit($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Update the specified resource in storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 IlluminateHttpRequest\u00a0 $request\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function update(Request $request, $id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Remove the specified resource from storage.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 int\u00a0 $id\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return IlluminateHttpResponse\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function destroy($id)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Nous avons les m\u00e9thodes comme index, cr\u00e9er, stocker, afficher, \u00e9diter, mettre \u00e0 jour, d\u00e9truire automatiquement. Vous pouvez lire les commentaires fournis pour chaque m\u00e9thode qui explique ce que fait chaque m\u00e9thode. Sp\u00e9cifions maintenant l&rsquo;itin\u00e9raire pour cela.<\/p>\n<p><strong>itin\u00e9raires\/web.php<\/strong><\/p>\n<pre><code>Route::resource('pages', 'PageController');<\/code><\/pre>\n<p>Cette route ing\u00e9nieuse cr\u00e9era plusieurs routes pour g\u00e9rer diff\u00e9rentes actions. Maintenant, pour obtenir les d\u00e9tails des actions, ex\u00e9cutez la commande <code>php artisan route:list<\/code>. Pour la route des pages, vous verrez la sortie comme indiqu\u00e9 dans la capture d&rsquo;\u00e9cran.<\/p>\n<p>Cette sortie vous donne une id\u00e9e de la m\u00e9thode HTTP, de l&rsquo;URL et de la m\u00e9thode qui appellera l&rsquo;URL sp\u00e9cifi\u00e9e.<\/p>\n<p>Par exemple, si vous ex\u00e9cutez une URL YOUR_SITE_DOMAIN\/pages avec la m\u00e9thode GET, elle appellera la <code>index()<\/code>m\u00e9thode d&rsquo;un PageController.<\/p>\n<p>Si vous souhaitez cr\u00e9er une nouvelle page, l&rsquo;URL sera YOUR_SITE_DOMAIN\/pages\/create. Il donne un appel \u00e0 la <code>create()<\/code>m\u00e9thode o\u00f9 vous devez charger une vue pour cr\u00e9er une nouvelle page.<\/p>\n<p>Lorsque vous soumettez un formulaire avec method=&quot;post&quot; et action=&quot;pages&quot;, il appelle la <code>store()<\/code>m\u00e9thode.<\/p>\n<p>Etc.<\/p>\n<p>Il s&rsquo;agit de cr\u00e9er un contr\u00f4leur Laravel pour les op\u00e9rations CRUD. S&rsquo;il vous pla\u00eet partager vos pens\u00e9es dans la section commentaire ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-faire-de-l-ensemencement-de-base-de-donnees-dans-laravel\/\" title=\"Comment faire de l'ensemencement de base de donn\u00e9es dans Laravel\" >Comment faire de l&rsquo;ensemencement de base de donn\u00e9es dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/systeme-de-connexion-sociale-utilisant-laravel-socialite\/\" title=\"Syst\u00e8me de connexion sociale utilisant Laravel Socialite\" >Syst\u00e8me de connexion sociale utilisant Laravel Socialite<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cet article, nous \u00e9tudions comment cr\u00e9er un contr\u00f4leur Laravel pour les op\u00e9rations CRUD. En utilisant un contr\u00f4leur ing\u00e9nieux, nous obtenons les m\u00e9thodes pr\u00e9d\u00e9finies g\u00e9n\u00e9r\u00e9es<\/p>\n","protected":false},"author":1,"featured_media":20716,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-23844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/23844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=23844"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/23844\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20716"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=23844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=23844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=23844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}