اذهب إلى المحتوى

السؤال

نشر (معدل)

لدي جدول يقوم بعرض بيانات عن المسارات التي يتم استخدامها حالياً في المشروع للمستخدم. ومن ضمن المعلومات أن يتم طباعة المسارات مثال:

/home
/users
/logout
...

 

كيف يمكنني طباعة جميع المسارات الموجودة في المشروع بشكل برمجي في لارافل؟

حاولت استخدام Route::getRoutes، ولكنها تعيد غرض من خلاله لا استطيع الوصول إلى معلومات المسارات بشكل مباشر.

كيف أستطيع تحقيق ذلك؟ هل يوجد طريقة أخرى؟

تم التعديل في بواسطة Amir Alsaeed

Recommended Posts

  • 0
نشر

يمكنك ذلك من خلال Route::getRoutes(); حيث أن هذه تقوم بارجاع كولكشن فيه جميع المسارات ولعرض جميع المسارات نقوم بالمرور عليه باستخدام foreach فيكون شكل الكود كالتالي

$routeCollection = Route::getRoutes();

foreach ($routeCollection as $value) {
    echo $value->getPath();
}

 

  • 0
نشر

يمكنك استخدام getRoutes لعرض جميع المسارات , ويمكنك جلب HTTP Method, Route , Name ايضا Corresponding Action من خلال عرض هذه المعلومات في جدول فيمكنك وضع مسار فليكن مثلاً 

Route::get('routes', function() {
	// ..
});

ثم تقوم بجلب 

$routeCollection = Route::getRoutes();

ثم تقوم بعرض المعلومات التي تحتاجها في جدول بهذا الشكل 

echo "<table style='width:100%'>";
        echo "<tr>";
            echo "<td><h4>HTTP Method</h4></td>";
            echo "<td><h4>Route</h4></td>";
            echo "<td><h4>Name</h4></td>";
            echo "<td><h4>Corresponding Action</h4></td>";
        echo "</tr>";
        foreach ($routeCollection as $value) {
            echo "<tr>";
                echo "<td>" . $value->getMethods()[0] . "</td>";
                echo "<td>" . $value->getPath() . "</td>";
                echo "<td>" . $value->getName() . "</td>";
                echo "<td>" . $value->getActionName() . "</td>";
            echo "</tr>";
        }
    echo "</table>";

 

  • 0
نشر

يمكن الوصول للمسارات من خلال RouteServiceProvider ضمن الدالة التالية booted:

$this->booted(function () {
	dump(Route::getRoutes());
}

ويمكن تعريف مسار خاص للتأكد من المسارات كالتالي:

حيث نعتمد على route:list في artisan

Route::get('routes', function() {
     \Artisan::call('route:list');
     return \Artisan::output();
});

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...