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

كيفية رفع الصور الشخصية في Laravel jetstream أثناء التسجيل

Mahmoud Alrashidi

السؤال

أستخدم Laravel Jetstream و أريد أن اتيح للمُستخدم إضافة صورته الشخصية أثناء التسجيل و هذا ما وجدته في الملف CreateNewUser.php:

<?php
public function create(array $input)
{
  Validator::make($input, [
    'name' => ['required', 'string', 'max:255'],
    'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
    'password' => $this->passwordRules(),
    'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['required', 'accepted'] : '',
  ])->validate();

  return DB::transaction(function () use ($input) {
    return tap(User::create([
      'name' => $input['name'],
      'email' => $input['email'],
      'password' => Hash::make($input['password']),
    ]), function (User $user) {
      $this->createTeam($user);
    });
  });
}

كيف يُمكنني إتاحة الأمر و أين أضيف الشيفرة التي تسمح برفع الصورة الشخصية ؟

تم التعديل في بواسطة كمال محمودي
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يحتوي Jetstream على خاصية رفع صور الملف الشخصي مضمنة ويحتوي على الإعدادات الافتراضية المدرجة بالفعل. إذا كنت تريد أن تعمل هذه الخاصية عند التسجيل ، فيمكنك استدعاء الوظيفة المضمنة بعد استدعاء:

$this->createTeam($user)

 أو قبلها مباشرة. ما عليك سوى القيام بذلك بعد إنشاء المستخدم حتى تتمكن من استخدام التابع updateProfilePhoto:

return DB::transaction(function () use ($input) {
  return tap(User::create([
    'name' => $input['name'],
    'email' => $input['email'],
    'password' => Hash::make($input['password']),
  ]), function (User $user) {
    $this->createTeam($user);
    if (isset($input['image'])) {
      $user->updateProfilePhoto($input['image']);
    }
  });
});

هذه هي الطريقة التي يقوم Fortify بتنفيذها في صنف UpdateUserProfileInformation ، يمكنك إلقاء نظرة على هذا الصنف في app/Actions/Fortify.

لا تنسى إضافة جزء التحقق من الصورة في :

<?php

Validator::make($input, [
  'name' => ['required', 'string', 'max:255'],
  'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
  'image' => ['nullable', 'mimes:jpg,jpeg,png', 'max:1024'],
  'password' => $this->passwordRules(),
  'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['required', 'accepted'] : '',
])->validate();

و إضافة حقل الصورة لإستمارة التسجيل.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...