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

السؤال

نشر

أنا أقوم ببناء مشروع باستخدام Laravel. لقد قمت باستيراد قاعدة البيانات الخاصة بي باستخدام kitloong / laravel-migrations-generator. أحاول زرع البذور في "utilizador",عند تشغيل php artisan migrate: fresh --seed يظهر الخطأ التالي

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'smm_centro_dia.utilizadors' doesn't exist (Connection: mysql, SQL: insert into `utilizadors` (`username`, `email`, `psw`, `grp`, `is_logged`, `dh_registo`, `updated_at`, `created_at`) values (admin, admin@gmail.com, $2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi, 0, 0, 2023-03-17 14:29:51, 2023-03-17 14:29:51, 2023-03-17 14:29:51))

 الشيء هو أنه يقول لم يتم العثور على الجدول "utilizadors" ، على الرغم من أن الجدول هو "utilizador" (بدون s). لا يمكنني العثور على أي استخدام بداخل ملفاتي لكلمة "utilizadors" ، لذلك لا أعرف مكان الخطأ.
هذا الكود
DatabaseSeeder

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call(RoleSeeder::class);
        $this->call(AdminSeeder::class);
    }
}

AdminSeeder

class AdminSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        $user = Utilizador::create([
            'username' => 'admin',
            'email' => 'admin@gmail.com',
            'psw' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
            'grp' => 0,
            'is_logged' => 0,
            'dh_registo' => now()
        ]);
        $user->assignRole('admin', 'colaborador');
    }
}

RoleSeeder

class RoleSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        Role::create(['name' => 'admin']);
        Role::create(['name' => 'colaborador']);
        Role::create(['name' => 'utilizador']);
    }
}

حاولت البحث في الاستخدامات ، وإعادة كتابة الكود ، ولم ينجح شيء, أرجو منكم مساعدتي

Recommended Posts

  • 0
نشر

Eloquent يفترض أن إسم الجدول الخاص بالنموذج Utilizador هو utilizadors لكن الإسم لديك هو utilizador إما تتبع العُرف و تُعيد تسمية الجدول بالشكل المطلوب، أو تقوم بضبط اسم الجدول من خلال الخاصية table في النموذج بالشكل التالي:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Utilizador extends Model
{
  /**
     * The table associated with the model.
     *
     * @var string
     */
  protected $table = 'utilizador'; // وضع اسم الجدول الخاص بك
}
  • 0
نشر

وفقًا للخطأ الذي حصلت عليه، تم البحث عن الجدول "utilizadors" بدلاً من "utilizador"، لذلك يجب التحقق من اسم الجدول المنشأ عند استخدام الأوامر التي تتعامل معه.

لحل المشكلة، يجب التأكد من أن الجدول المنشأ لديك هو "utilizador" وليس "utilizadors". يمكنك فحص ذلك عن طريق فتح ملف الـ migration الذي تم إنشاؤه بواسطة kitloong/laravel-migrations-generator والتأكد من أن اسم الجدول المحدد فيه هو "utilizador".

إذا كنت قد تأكدت من ذلك وكانت المشكلة لا تزال قائمة، يمكنك المحاولة في تغيير اسم الجدول المستخدم في الكود إلى "utilizadors" بدلاً من "utilizador". ولكن إذا قمت بذلك، يجب عليك التأكد من تغيير الاسم في جميع الملفات المتعلقة بالجدول، بما في ذلك الـ migration و model و seeder.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...