Créer une méthode de contrôleur Laravel
Sommaire
- 1- Objectifs
- 2- Présentation
- 2.1- Exemple de rendu de texte brut
- 2.2- Rendre un fichier de vue blade situé dans le dossier resources/views
- 2.3- Rendre le tableau en tant que tableau json ou json
- 2.4- Rendre un texte avec des en-têtes supplémentaires
- 2.5- Rendre un fichier ou un pdf
- 2.6- Télécharger le fichier de rendu
- 2.7- Redirection vers des URL internes ou externes
- 2.7.1- Cours Laravel
Créer une méthode de contrôleur Laravel
-
Objectifs
-
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 …
-
Exemple de rendu de texte brut
-
Rendre un fichier de vue blade situé dans le dossier resources/views
-
Rendre le tableau en tant que tableau json ou json
-
Rendre un texte avec des en-têtes supplémentaires
-
Rendre un fichier ou un pdf
-
Télécharger le fichier de rendu
-
Redirection vers des URL internes ou externes
<? php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
function exemple()
{
return "Hello, Mohamed SALAH";
}
}
<? php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
function example()
{
return view("dashboard");
}
}
<? 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"
]);
}
}
<? 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');
}
}
<? 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);
}
}
<? 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();
}
}
<? 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!');
}
}