ابراهيم الخليل سماني نشر 31 مارس 2022 أرسل تقرير نشر 31 مارس 2022 لما احاول القيام ب php artisan route:cache يظهر لي الخطأ التالي C:\laragon\www\bookstore λ php artisan route:cache Route cache cleared! LogicException Unable to prepare route [api/user] for serialization. Uses Closure. at C:\laragon\www\bookstore\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1150 1146| */ 1147| public function prepareForSerialization() 1148| { 1149| if ($this->action['uses'] instanceof Closure) { > 1150| throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure."); 1151| } 1152| 1153| $this->compileRoute(); 1154| 1 C:\laragon\www\bookstore\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62 Illuminate\Routing\Route::prepareForSerialization() 2 C:\laragon\www\bookstore\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36 Illuminate\Foundation\Console\RouteCacheCommand::handle() C:\laragon\www\bookstore λ عمليا لايوجد أي خطأ في الموقع تقريبا إلا أنني عند قمت بتغيير إسم بعض الروابط لأحد المتحكمات Route::get('/technologies/{author}', 'AuthorController@result')->name('authors.books.result'); ^^^^^^^^^^^^^ //قمت بتغيير هذا Route::get('/technologies/searsh', 'AuthorController@searsh')->name('authors.searsh'); ^^^^^^^^^^^^^ //قمت بتغيير هذا Route::get('/technologies/list', 'AuthorController@list')->name('authors.list'); ^^^^^^^^^^^^^ //قمت بتغيير هذا تكون النتيجة 404 قلت أعمل كلير للراوت لم استطع ملفات المشروع :bookstore.rar شكرا 1 اقتباس
1 سامح أشرف نشر 31 مارس 2022 أرسل تقرير نشر 31 مارس 2022 الخطأ الذي يظهر لك عند تنفيذ الأمر route:cache يحدث بسبب الكود الموجود في الملف routes\api.php وذلك لأن لارافيل لا يمكنه أن يقوم بعمل cache للمسارات routes إن كان أحد المسارات يحتوي على كود مباشر في داخل function وليس مسار لتابع في متحكم controller، وإذا قمت بإزالة الكود الموجود في الملف routes\api.php، بالشكل التالي: // Route::middleware('auth:api')->get('/user', function (Request $request) { // return $request->user(); // }); ثم قمت بتنفيذ الأمر التالي مرة أخرى: php artisan route:cache فستجد أنه يعمل بدون مشكلة. 2 اقتباس
0 ابراهيم الخليل سماني نشر 31 مارس 2022 الكاتب أرسل تقرير نشر 31 مارس 2022 نعم , تم الامر لكن لماذا عندما ازور الرابط الذي غيرته لازال يعطيني 404 Not Found 1 اقتباس
0 سامح أشرف نشر 31 مارس 2022 أرسل تقرير نشر 31 مارس 2022 بتاريخ 2 دقائق مضت قال Brahim Semmani: نعم , تم الامر لكن لماذا عندما ازور الرابط الذي غيرته لازال يعطيني 404 Not Found لاحظ أن ترتيب المسارات به مشكلة، حيث أنه دائمًا سيتم تنفيذ المسار التالي: // هذا المسار هو الذي سيتم تنفيذه Route::get('/technologies/{author}', 'AuthorController@result')->name('authors.books.result'); // لن يتم تنفيذ المسارات التالية Route::get('/technologies/searsh', 'AuthorController@searsh')->name('authors.searsh'); Route::get('/technologies/list', 'AuthorController@list')->name('authors.list'); المسار الثاني والثالث لن يتم تنفيذهم، حيث سيتم إعتبار كلمة search أو list عبارة عن المعامل author قي المسار السابق، وعليك أن تقوم بعكس ترتيبهم ليصبح بالشكل التالي: Route::get('/technologies/searsh', 'AuthorController@searsh')->name('authors.searsh'); Route::get('/technologies/list', 'AuthorController@list')->name('authors.list'); Route::get('/technologies/{author}', 'AuthorController@result')->name('authors.books.result'); بعد ذلك قم بتنفيذ الأمر التالي: php artisan route:clear ثم قم بتشغيل المشروع مرة أخرى. 1 اقتباس
0 Ahmed Abu Hatab نشر 2 أبريل 2022 أرسل تقرير نشر 2 أبريل 2022 لا يمكنك تنفيذ هذا الأمر على Routes تحتوي على closure function ، أمامك حل وهو تنفيذ هذا الأمر php artisan route:list سيعرض لك كل ال routes في موقعك ، وعندها ستجد أي ال Routes تحتوي على closure function ، وقم بتغيرها الى Controller وبهذا ستحل المشكلة 1 اقتباس
السؤال
ابراهيم الخليل سماني
لما احاول القيام ب
php artisan route:cache
يظهر لي الخطأ التالي
C:\laragon\www\bookstore λ php artisan route:cache Route cache cleared! LogicException Unable to prepare route [api/user] for serialization. Uses Closure. at C:\laragon\www\bookstore\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1150 1146| */ 1147| public function prepareForSerialization() 1148| { 1149| if ($this->action['uses'] instanceof Closure) { > 1150| throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure."); 1151| } 1152| 1153| $this->compileRoute(); 1154| 1 C:\laragon\www\bookstore\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62 Illuminate\Routing\Route::prepareForSerialization() 2 C:\laragon\www\bookstore\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36 Illuminate\Foundation\Console\RouteCacheCommand::handle() C:\laragon\www\bookstore λ
عمليا لايوجد أي خطأ في الموقع تقريبا إلا أنني عند قمت بتغيير إسم بعض الروابط لأحد المتحكمات
Route::get('/technologies/{author}', 'AuthorController@result')->name('authors.books.result'); ^^^^^^^^^^^^^ //قمت بتغيير هذا Route::get('/technologies/searsh', 'AuthorController@searsh')->name('authors.searsh'); ^^^^^^^^^^^^^ //قمت بتغيير هذا Route::get('/technologies/list', 'AuthorController@list')->name('authors.list'); ^^^^^^^^^^^^^ //قمت بتغيير هذا
تكون النتيجة 404 قلت أعمل كلير للراوت لم استطع
ملفات المشروع :bookstore.rar
شكرا
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.