سأكمل شرح الخاصيتين:
Name: تعمل على وضع اسم لمسار معين، وبهذا يقلل من تعقيد الشيفرة.
Route::get('/user/profile', function () {
//
})->name('profile');
لاحظ أن المسار user/profile له اسم مختصر profile.
مثلاً، لإعادة التوجيه ضمن المتحكم لمسار صفحة المستخدم تصبح الشيفرة:
return redirect()->route('profile');
^^^^^^^^^^^^^
كما أن اختباره اسم المسار يصبح ضمن كائن الطلبية ويمكن اختبارها مباشرة ضمنه
public function handle($request, Closure $next)
{
if ($request->route()->named('profile')) {
//
}
return $next($request);
}
أما Group: تعمل على تجميع أكثر من مسار وإعطائهم بادئة مشتركة أو توجيه الطلبيات إلى middleware معين أو أكثر، مثلاً
بادئة مشتركة prefix:
Route::prefix('admin')->group(function () {
Route::get('/users', function () {
// Matches The "/admin/users" URL
});
});
وسيط مشترك middleware:
Route::middleware(['middleware1', 'middleware2'])->group(function () {
Route::get('/', function () {
// Uses first & second middleware...
});
Route::get('/user/profile', function () {
// Uses first & second middleware...
});
});
طبعاً يمكنك مراجعة التوثيق laravel 9 routing