Rumah >pembangunan bahagian belakang >tutorial php >Menukar Model Laravel ke JSON untuk Respons API

Menukar Model Laravel ke JSON untuk Respons API

Johnathan Smith
Johnathan Smithasal
2025-03-06 01:17:13247semak imbas

Converting Laravel Models to JSON for API Responses

Laravel menyediakan beberapa kaedah untuk mengubah model fasih ke JSON, dengan Tojson () menjadi salah satu pendekatan yang paling mudah. Kaedah ini menawarkan fleksibiliti bagaimana model anda bersiri untuk respons 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);
mari kita meneroka contoh praktikal sistem tindak balas API menggunakan tojson ():

Kaedah Tojson () Laravel Laravel menyediakan cara yang cekap untuk menukar model ke JSON, sambil menawarkan fleksibiliti untuk menyesuaikan output melalui atribut dan hubungan model.
<!-- Syntax highlighted by torchlight.dev --><?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    protected $appends = [&#39;reading_time&#39;];

    protected $hidden = [&#39;internal_notes&#39;];

    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
    }
}

Atas ialah kandungan terperinci Menukar Model Laravel ke JSON untuk Respons API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn