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

السؤال

نشر

كنت اعمل على موقع وكل شيء على مايرام تهجير وكل شيء اردت اضافة جدول المفضلة لاضافة خيار اضافة عنصر للمفضلة وربطه بهذه الطريقة 

            $table->foreignId('user_id')->constrained()->onDelete('cascade');
            $table->foreignId('subcategory_id')->constrained('sub_categories')->onDelete('cascade');

وقمت بتنفيذ الامر php artisan migrate:refresh 

فواجهت مشكلة انه لا يمكنني حذف جدول ال user  بسبب العلاقة وعند تغيير العلاقة واعادة المحاولة اصبحت تظهر لي مشكلة غريبة هذه هي 

λ php artisan migrate:refresh --seed

   Illuminate\Database\QueryException

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'inspro.subscriber_categories' doesn't exist (Connection: mysql, SQL: select * from `subscriber_categories`)

  at vendor\laravel\framework\src\Illuminate\Database\Connection.php:829
    825▕                     $this->getName(), $query, $this->prepareBindings($bindings), $e
    826▕                 );
    827▕             }
    828▕
  ➜ 829▕             throw new QueryException(
    830▕                 $this->getName(), $query, $this->prepareBindings($bindings), $e
    831▕             );
    832▕         }
    833▕     }

  1   [internal]:0
      Illuminate\Foundation\Application::Illuminate\Foundation\{closure}(Object(App\Providers\AppServiceProvider))

  2   vendor\laravel\framework\src\Illuminate\Database\Connection.php:423
      PDOException::("SQLSTATE[42S02]: Base table or view not found: 1146 Table 'inspro.subscriber_categories' doesn't exist")

مع العلم ان الجدول موجود لدي بالفعل وكان يعمل كل شيء على ما يرام 

حذفت قاعدة البيانات كلها وحاولت اعادة التهجير ومازلات المشكلة ذاتها 

حاولت اضافتهم الى قاعدة بيانات جديدة ايضا ذات المشكلة 

وحتى عندما احاول تنفيذ هذه  الامور تظهر المشكلة ذاتها 

php artisan migrate:reset
php artisan config:clear
php artisan cache:clear

ما الحل وما سبب المشكلة ؟

Recommended Posts

  • 1
نشر

المشكلة لديكي أنه يوجد كود يتم تنفيذه قبل تشغيل أمر migrate وهذا الكود يبحث عن جدول يسمى subscriber_categories .

لذلك يرجى البحث في الملفات التالية عن كود يستخدم الجدول subscriber_categories ويجب تعطيله مؤقتا ومن ثم تشغيله بعد أمر التهجير :

  • App\Providers\AppServiceProvider.php حيث في هذا الملف توجد دالة boot التي قد تحتوي على كود يتم تنفيذه قبل المهاجرات.
  • App\Providers\AuthServiceProvider.php وأيضا هذا الملف.
  • ومجلد ال app/Http/Middleware أيضا .
  • ومجلد app/Providers .

بعد وجود الكود الذي يستخدم جدول subscriber_categories يرجى تعطيله أو خذفه وتنفيذ أمر المهجرات ومن ثم إعادة الكود مرة أخرى.

إذا إستمرت المشكلة يرجى إرفاق ملف المشروع.

  • 0
نشر

اولا شكرا لك حلت المشكلة 

ولكن لدي سؤال لماذا هذا الجدول بالذات باللرغم من انني استخدم الكثير من الجداول في ملف ال AppServiceProvider

<?php

namespace App\Providers;

use App\Models\Category;
use App\Models\Employee;
use App\Models\Information;
use App\Models\PostCategory;
use App\Models\SubscriberCategory;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        View::share('subscriberCategories', SubscriberCategory::all());
        View::share('categories', Category::all());
        View::share('employees', Employee::all());



                // جلب الـ categories مع الـ subcategories المرتبطة بها
                $categoriesWithSubcategories = Category::with('subcategories')->get();

                // مشاركة البيانات مع جميع العروض
                View::share('categories', $categoriesWithSubcategories);
            
                     // جلب الفئات مع المشتركين المرتبطين بها
                    $subscriberCategories = SubscriberCategory::with('subscribers')->get();

                    // مشاركة البيانات مع جميع العروض
                    View::share('subscriberCategories', $subscriberCategories);
                                        

            
                     // جلب الفئات مع المشتركين المرتبطين بها
                     $postCategories = PostCategory::with('posts')->get();

                     // مشاركة البيانات مع جميع العروض
                     View::share('postCategories', $postCategories);
                     

                    $information = Information::first(); 
                    View::share('information', $information);

    }


}

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...