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

السؤال

نشر

فيما يلي هو تهجير المستخدمين لدي في المشروع، أحتاج إلى تحميل مستند Excel يحتوي على حقول تحمل نفس أسماء العناوين في صف العناوين في ملف Excel، ويجب إدراج كل صف row  كمستخدم جديد.

 public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('prefix')->nullable();
            $table->string('firstname');
            $table->string('middlename')->nullable();
            $table->string('lastname');
            $table->string('suffix')->nullable();
            $table->string('slug')->unique()->nullable();
            $table->string('tags')->nullable();
            $table->integer('status')->nullable()->default('1');
            $table->string('password');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('altemail')->nullable();
            $table->string('empnumber')->nullable();
            $table->string('altempnumber')->nullable();
            $table->string('type', 50)->nullable();
            $table->longtext('description')->nullable();
            $table->date('dob')->nullable();
            $table->date('doh')->nullable();
            $table->date('dos')->nullable();
            $table->string('separation_reason', 255)->nullable();
            $table->string('home_number', 10)->nullable();
            $table->string('home_street', 255)->nullable();
            $table->string('home_street_alt', 255)->nullable();
            $table->string('home_city', 70)->nullable();
            $table->string('home_state', 70)->nullable();
            $table->string('home_postalcode', 30)->nullable();
            $table->string('home_county', 70)->nullable();
            $table->string('home_country', 70)->nullable();
            $table->string('home_lat', 25)->nullable();
            $table->string('home_lng', 25)->nullable();
            $table->string('signature', 255)->nullable();
            $table->integer('logins')->nullable()->default('0');
            $table->datetime('last_login_dt')->nullable();
            $table->string('last_login_ip', 60)->nullable();
            $table->string('dl_state', 50)->nullable();
            $table->string('dl_number', 50)->nullable();
            $table->string('dl_type', 50)->nullable();
            $table->string('facebook', 255)->nullable();
            $table->string('twitter', 255)->nullable();
            $table->string('religion', 255)->nullable();
            $table->string('worship_place', 255)->nullable();
            $table->string('armed_service', 255)->nullable();
            $table->string('professional_orgs', 255)->nullable();
            $table->string('will_info', 255)->nullable();
            $table->string('organ_donor', 20)->nullable();
            $table->json('bookmarks')->nullable();
            $table->boolean('locked')->default(0);;
            $table->boolean('personnel')->default(0);;
            $table->rememberToken();
            $table->timestamps();
        });

هل أنا بحاجة إلى استخدام مكتبة معينة لتحقيق ذلك؟

Recommended Posts

  • 0
نشر

يمكنك استخدام مكتبة Laravel Excel. تعتبر هذه المكتبة مفيدة لمعالجة ملفات Excel بشكل سهل وفعال.

https://docs.laravel-excel.com/3.1/getting-started/

يمكنك تثبيت المكتبة باستخدام Composer:

composer require maatwebsite/excel

بعد تثبيت المكتبة، يمكنك إعداد ملف التكوين `config/excel.php` عبر الأمر:

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config

ثم يمكنك استخدام الكود التالي في وحدة التحكم (`App\Http\Controllers\UserController`) لتحميل ملف Excel وإدراج بياناته في قاعدة البيانات:

use Maatwebsite\Excel\Facades\Excel;
use App\Imports\UsersImport;

public function importUsers()
{
    // استخدام مكتبة Laravel Excel لتحميل ملف Excel
    Excel::import(new UsersImport, 'users.xlsx');

    return 'Users imported successfully!';
}

ثم، يجب عليك إنشاء فئة `UsersImport` لمعالجة عملية الاستيراد. يمكنك استخدام الأمر التالي لإنشاء الفئة:

php artisan make:import UsersImport

ومن ثم، يمكنك تحرير الفئة المنشأة `UsersImport` لتناسب حقول الجدول `users`:

namespace App\Imports;

use App\Models\User;
use Maatwebsite\Excel\Concerns\ToModel;

class UsersImport implements ToModel
{
    public function model(array $row)
    {
        return new User([
            'prefix' => $row['prefix'],
            'firstname' => $row['firstname'],
            'middlename' => $row['middlename'],
            'lastname' => $row['lastname'],
            'suffix' => $row['suffix'],
            'slug' => $row['slug'],
            'tags' => $row['tags'],
            'status' => $row['status'],
            'password' => $row['password'],
            'email' => $row['email'],
            'email_verified_at' => $row['email_verified_at'],
            'altemail' => $row['altemail'],
            'empnumber' => $row['empnumber'],
            'altempnumber' => $row['altempnumber'],
            'type' => $row['type'],
            'description' => $row['description'],
            'dob' => $row['dob'],
            'doh' => $row['doh'],
            'dos' => $row['dos'],
            'separation_reason' => $row['separation_reason'],
            'home_number' => $row['home_number'],
            'home_street' => $row['home_street'],
            'home_street_alt' => $row['home_street_alt'],
            'home_city' => $row['home_city'],
            'home_state' => $row['home_state'],
            'home_postalcode' => $row['home_postalcode'],
            'home_county' => $row['home_county'],
            'home_country' => $row['home_country'],
            'home_lat' => $row['home_lat'],
            'home_lng' => $row['home_lng'],
            'signature' => $row['signature'],
            'logins' => $row['logins'],
            'last_login_dt' => $row['last_login_dt'],
            'last_login_ip' => $row['last_login_ip'],
            'dl_state' => $row['dl_state'],
            'dl_number' => $row['dl_number'],
            'dl_type' => $row['dl_type'],
            'facebook' => $row['facebook'],
            'twitter' => $row['twitter'],
            'religion' => $row['religion'],
            'worship_place' => $row['worship_place'],
            'armed_service' => $row['armed_service'],
            'professional_orgs' => $row['professional_orgs'],
            'will_info' => $row['will_info'],
            'organ_donor' => $row['organ_donor'],
            'bookmarks' => $row['bookmarks'],
            'locked' => $row['locked'],
            'personnel' => $row['personnel'],
        ]);
    }
}

يمكنك استخدام دالة `ToModel` لتعيين البيانات المستخرجة إلى نموذج `User`.

بعد تكوين ذلك، يمكنك استدعاء دالة `importUsers` عبر الطريقة المناسبة في تطبيق Laravel الخاص بك، مثل إنشاء مسار واستدعاء الوحدة التحكم.

  • 0
نشر

لإدخال بيانات المستخدمين من ملف Excel إلى جدول المستخدمين في Laravel، يمكنك استخدام مكتبة "Laravel Excel"، وهي مكتبة قوية للتعامل مع ملفات Excel في Laravel. فيما يلي خطوات تحقيق هذا الهدف:

تثبيت Laravel Excel:

أولاً، تحتاج إلى تثبيت مكتبة Laravel Excel باستخدام Composer. يمكنك تثبيتها باستخدام الأمر التالي:

composer require maatwebsite/excel

إنشاء Import Class:

بعد تثبيت المكتبة، قم بإنشاء فئة Import لتحديد كيفية استيراد بيانات Excel إلى جدول المستخدمين. يمكنك إنشاء هذه الفئة باستخدام Artisan Command:

php artisan make:import UsersImport --model=User

هذا سينشئ فئة UsersImport في مجلد Imports. يمكنك تعديل هذه الفئة لتحديد كيفية قراءة البيانات من ملف Excel وإدراجها في قاعدة البيانات.

تعديل UsersImport Class:

عليك تعديل UsersImport لتعكس بنية جدول المستخدمين في قاعدتك البيانات. على سبيل المثال:

use Maatwebsite\Excel\Concerns\ToModel;
use App\Models\User;

class UsersImport implements ToModel
{
    public function model(array $row)
    {
        return new User([
            'firstname' => $row[0],
            // وهكذا لبقية الحقول
        ]);
    }
}

إنشاء واجهة لرفع الملف:

استخدم Blade لإنشاء نموذج HTML يسمح للمستخدمين برفع ملف Excel.

معالجة ملف Excel في الكنترولر:

في الكنترولر الخاص بك، أضف الكود اللازم لمعالجة ملف Excel المرفوع واستيراد البيانات باستخدام فئة UsersImport.

use Maatwebsite\Excel\Facades\Excel;
use App\Imports\UsersImport;

public function importExcel(Request $request)
{
    Excel::import(new UsersImport, $request->file('excelFile'));
    // رد ما بعد الاستيراد
}

التحقق من البيانات:

تأكد من أن بيانات Excel تتطابق مع بنية جدول المستخدمين في قاعدة البيانات. قد تحتاج إلى تعديل الفهرسة في UsersImport بناءً على ترتيب الأعمدة في ملف Excel.

أمان البيانات:

تأكد من التحقق من صحة البيانات وتنظيفها قبل إدراجها في قاعدة البيانات لتجنب أي مشاكل أمنية أو تكامل البيانات.

باتباع هذه الخطوات، ستتمكن من استيراد مستخدمين جد

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...