Laravel fournit plusieurs méthodes pour transformer les modèles éloquents en JSON, Tojson () étant l'une des approches les plus simples. Cette méthode offre une flexibilité dans la façon dont vos modèles sont sérialisés pour les réponses API.
<!-- Syntax highlighted by torchlight.dev -->// Basic usage of toJson() $user = User::find(1); return $user->toJson(); // With JSON formatting options return $user->toJson(JSON_PRETTY_PRINT);
Explorons un exemple pratique d'un système de réponse API utilisant TOJSON ():
<!-- Syntax highlighted by torchlight.dev --><?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Article extends Model { protected $appends = ['reading_time']; protected $hidden = ['internal_notes']; public function author() { return $this->belongsTo(User::class); } public function comments() { return $this->hasMany(Comment::class); } public function getReadingTimeAttribute() { return ceil(str_word_count($this->content) / 200); } public function toArray() { return [ 'id' => $this->id, 'title' => $this->title, 'content' => $this->content, 'author' => $this->author->name, 'reading_time' => $this->reading_time, 'comments_count' => $this->comments()->count(), 'created_at' => $this->created_at->toDateTimeString(), 'updated_at' => $this->updated_at->toDateTimeString(), ]; } } // In your controller class ArticleController extends Controller { public function show($id) { $article = Article::with(['author', 'comments.user'])->findOrFail($id); return $article->toJson(); } public function index() { $articles = Article::with('author')->get(); return response()->json($articles); // Implicit conversion } }
La méthode Tojson () de Laravel fournit un moyen efficace de convertir des modèles en JSON, tout en offrant la flexibilité pour personnaliser la sortie via les attributs et les relations du modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!