Rumah >rangka kerja php >Laravel >laravel keluarkan povit
Laravel ialah rangka kerja web PHP popular yang menyediakan beberapa ciri dan alatan yang sangat mudah untuk menjadikan pembangunan web lebih mudah dan pantas. Antaranya, Pivot ialah fungsi yang sangat penting untuk mengendalikan perhubungan banyak-ke-banyak. Walau bagaimanapun, dalam beberapa kes, kami mungkin perlu mengalih keluar Pivot.
Mengapa anda perlu mengalih keluar Pivot?
Semasa proses pembangunan, pengehadan Pivot kadangkala timbul dan kami mungkin memerlukan lebih banyak penyesuaian dan kawalan perhubungan banyak-ke-banyak. Pada ketika ini, mengalih keluar Pivot memberikan fleksibiliti yang lebih besar. Berikut ialah beberapa situasi biasa:
Bagaimana untuk mengalih keluar Pivot?
Terdapat banyak cara untuk mengalih keluar Pivot Berikut ialah dua cara biasa.
Kaedah 1: Buat jadual perantaraan secara manual
CREATE TABLE `user_role` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(11) unsigned NOT NULL, `role_id` int(11) unsigned NOT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
class User extends Model { public function roles() { return $this->belongsToMany(Role::class, 'user_role', 'user_id', 'role_id'); } } class Role extends Model { public function users() { return $this->belongsToMany(User::class, 'user_role', 'role_id', 'user_id'); } }
$user = User::find(1); $roles = $user->roles;
dalam pengawal Dua: Gunakan middleware
php artisan make:middleware SimplifyPivotMiddleware
namespace AppHttpMiddleware; use Closure; class SimplifyPivotMiddleware { public function handle($request, Closure $next) { $user = $request->user; $roles = $user->roles()->withTimestamps()->select('id', 'name')->get(); $user->setRelation('roles', $roles); return $next($request); } }
Route::get('/user/{id}/roles', function ($id) { $user = User::with('roles')->find($id); return response()->json(['status' => 1, 'data' => $user->roles]); })->middleware(SimplifyPivotMiddleware::class);
Kesimpulan
Pivot ialah cara terbaik untuk Laravel mengendalikan perhubungan banyak-ke-banyak. Walau bagaimanapun, dalam beberapa kes, kita mungkin perlu menyingkirkan Pivot dan membuat jadual perantaraan secara manual, atau menggunakan perisian tengah untuk mengendalikan perhubungan banyak-ke-banyak. Ini memberikan lebih fleksibiliti dan kawalan, tetapi memerlukan lebih banyak kos pengekodan dan penyelenggaraan.
Atas ialah kandungan terperinci laravel keluarkan povit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!