Créer une méthode de contrôleur Laravel

Créer une méthode de contrôleur Laravel

  1. Objectifs

  2. Présentation

    • Un contrôleur laravel peut contenir différentes méthodes. Chaque méthode peut avoir l’ argument $ request comme paramètre de fonction par défaut. Il s’agit essentiellement d’un objet de requête contenant vos variables de formulaire, vos données de session ou vos informations de cookie.
    • Une méthode de contrôleur peut répondre via différents types de réponse, certains d’entre eux sont mentionnés ci-dessous:
      • Texte brut
      • Json Array
      • Vue HTML ou blade
      • XML
      • Téléchargement de fichier
      • Sortie PDF ou image sur navigateur directement etc …



  3. Exemple de rendu de texte brut
    • <? php
      
      namespace App\Http\Controllers;
      use Illuminate\Http\Request;
      
      class UserController extends Controller
      {
          function exemple()
          {
              return "Hello, Mohamed SALAH";
          }
      }
  4. Rendre un fichier de vue blade situé dans le dossier resources/views
    • <? php
      
      namespace App\Http\Controllers;
      use Illuminate\Http\Request;
      
      class UserController extends Controller
      {
          function example()
          {
              return view("dashboard");
          }
      }
  5. Rendre le tableau en tant que tableau json ou json
    • <? php
      
      namespace App\Http\Controllers;
      use Illuminate\Http\Request;
      
      class UserController extends Controller
      {
          function example()
          {
              // render array as json
              return [1, 2, 3];
      
              // render json array
              return response()->json([
                  "name" => "Sandip Patel"
              ]);
          }
      }
  6. Rendre un texte avec des en-têtes supplémentaires
    • <? php
      
      namespace App\Http\Controllers;
      use Illuminate\Http\Request;
      
      class UserController extends Controller
      {
          function example()
          {
              return response('Hello World', 200)
                      ->header('Content-Type', 'text/plain');
      
              return response($content)
                  ->header('Content-Type', $type)
                  ->header('X-Header-One', 'Header Value1')
                  ->header('X-Header-Two', 'Header Value2');
          }
      }
  7. Rendre un fichier ou un pdf
    • <? php
      
      namespace App\Http\Controllers;
      use Illuminate\Http\Request;
      
      class UserController extends Controller
      {
          function example()
          {
              // render a file directly on broswer
              // i.e. image or pdf file
              return response()->file($pathToFile);
          }
      }
  8. Télécharger le fichier de rendu
    • <? php
      
      namespace App\Http\Controllers;
      use Illuminate\Http\Request;
      
      class UserController extends Controller
      {
          function example()
          {
              // download a file with given path
              return response()->download($pathToFile);
      
              // download a file with given path with different name and
              // pass some extra headers along with the new file name
              return response()->download($pathToFile, $name, $headers);
      
              // delete the file once download completes
              return response()->download($pathToFile)->deleteFileAfterSend();
          }
      }
  9. Redirection vers des URL internes ou externes
    • <? php
      
      namespace App\Http\Controllers;
      use Illuminate\Http\Request;
      
      class UserController extends Controller
      {
          function example()
          {
              // redirect to last page with
              // submitted form data
              return back()->withInput();
      
              // redirect to user/dashboard page
              return redirect('user/dashboard');
      
              // redirect with named route
              return redirect()->route('login');
      
              // redirect with named route by passing variables
              return redirect()->route('profile', ['id' => 1]);
      
      
              // redirect to specific controller method
              return redirect()->action('HomeController@index');
      
      
              // redirect to external url
              return redirect()->away('https://www.google.com');
      
              // redirect with flash session message
              return redirect('dashboard')->with('success', 'Profile updated!');
          }
      }



Laisser un commentaire

Abonnez vous à notre chaîne YouTube gratuitement