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

السؤال

نشر (معدل)

أستخدم 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...