Osama Kha نشر 18 أبريل 2023 أرسل تقرير نشر 18 أبريل 2023 اقوم بالتعديل على سجل ما يحوي السجل على تفاصيل وصورة احتاج الى طريقة لعدم اعادة طلب لتحميل الصورة اي يبقى محتفظ بالصورة القديمة بشكل تلقائي مشابهة لفكرة قيمة بدائية لحقل ما 1 اقتباس
0 Mustafa Suleiman نشر 19 أبريل 2023 أرسل تقرير نشر 19 أبريل 2023 تستطيع استخدام خاصية "fill" في النموذج Laravel، حيث يمكن تحديد الحقول التي يجب تعديلها وترك الحقول الأخرى بدون تعديل. مثلاً، إذا كان لديك نموذج يحتوي على حقول "title" و "description" و "image" ، وتحتاج إلى تعديل "title" و "description" فقط دون تغيير الصورة، يمكنك القيام بذلك كما يلي: public function update(Request $request, $id) { $post = Post::findOrFail($id); $post->fill($request->only('title', 'description')); $post->save(); return redirect()->back(); } تم استخدام الدالة "fill" لتحديد الحقول "title" و "description" فقط وترك حقل الصورة دون تغيير، واستخدام الدالة "only" لتحديد الحقول المطلوبة فقط للتحديث. وبذلك سيتم الاحتفاظ بالصورة القديمة في الحقل "image" دون الحاجة إلى إعادة تحميلها. 1 اقتباس
0 سمير عبود نشر 19 أبريل 2023 أرسل تقرير نشر 19 أبريل 2023 بإمكانك إستثناء بعض الحقول من الطلب بإستعمال التابع except: $input = $request->except(['input1', 'input2', ...]); مثال: <?php public function update(Request $request, Admin $admin) { // التحقق من البيانات $request->validate([ 'name' => ['required'], 'email' => ['required', 'email', Rule::unique('admins', 'email')->ignore($admin->id)], 'password' => ['sometimes', 'nullable', 'confirmed'], 'image' => 'sometimes|nullable|' . v_images(), 'role_id' => ['required', 'numeric', Rule::exists('roles', 'id')], ], [], [ 'name' => trans('site.name'), 'email' => trans('site.email'), 'password' => trans('site.password'), 'role_id' => trans('site.role_id') ]); // إستثناء بعض الحقول التي تتطلب إجراءات إضافية $request_data = $request->except(['password', 'password_confirmation', 'image', 'role_id']); // تشفير كلمة المرور و إضافة القيمة للمصفوفة التي سيتم التعديل من خلالها if (request()->has('password') && !is_null($request->password)) $request_data['password'] = bcrypt($request->password); // رفع صورة جديدة في حالة كان الطلب يحوي صورة جديدة // و إضافة مسار الصورة لمصفوفة البيانات if ($request->hasFile('image')) $request_data['image'] = up()->upload([ 'file' => 'image', 'upload_type' => 'single', 'path' => 'admin_images', 'delete_file' => $admin->image ]); // التعديل $admin->update($request_data); $admin->syncRoles($request->role_id); session()->flash('success', __('site.updated_successfully')); return redirect()->route('dashboard.admins.index'); } // end of update 1 اقتباس
0 عبدالباسط ابراهيم نشر 19 أبريل 2023 أرسل تقرير نشر 19 أبريل 2023 بالإضافة إلى الدوال `except()` و `only()`، يمكن استخدام الدالة `intersect()` للحصول على الحقول المتوفرة في الطلب فقط وتجاهل أي حقل آخر غير موجود في الطلب. يمكن استخدام هذه الدالة لضمان عدم تواجد أي حقل غير مرغوب في الطلب. على سبيل المثال، إذا كان لديك طلب (request) يحتوي على حقول مختلفة وتريد استخدام الحقول الموجودة في الطلب فقط، يمكن استخدام الدالة `intersect()` في الطلب وتمرير الحقول المطلوبة كمصفوفة: public function store(Request $request) { $data = $request->intersect(['name', 'email']); // $data الآن يحتوي على الحقول الموجودة في الطلب فقط وهي "name" و "email" } تمامًا مثل الدالتين `except()` و `only()`، يمكن استخدام الدالة `intersect()` في أي عملية (method) في Laravel تستخدم الطلب (request). ومن المهم الإشارة إلى أن هذه الدالة لا تعمل مع طلبات ملفات (multipart/form-data)، حيث يجب استخدام `except()` أو `only()` في هذه الحالة. 1 اقتباس
0 Adnane Kadri نشر 19 أبريل 2023 أرسل تقرير نشر 19 أبريل 2023 بجانب ما اقترحه المدربون، يمكنك فرض قيمة افتراضية للخاصية المعنية مع السماح بعدم ارسالها في طلب التحديث، لنعرف المسترجع getImageAttribute في ملف النموذج المعني كالتالي: public function getImageAttribute($value){ return is_null($value) ? 'path/to/default_img.png' : $value; } يتم هنا التحقق من ما ان كان النموذج يمتلك بالفعل قيمة مسندة في خاصية مسار الصورة، وإلا فإنه يعيد مسار الصورة الافتراضية. 1 اقتباس
0 Osama Kha نشر 19 أبريل 2023 الكاتب أرسل تقرير نشر 19 أبريل 2023 بتاريخ 7 ساعة قال Adnane Kadri: بجانب ما اقترحه المدربون، يمكنك فرض قيمة افتراضية للخاصية المعنية مع السماح بعدم ارسالها في طلب التحديث، لنعرف المسترجع getImageAttribute في ملف النموذج المعني كالتالي: public function getImageAttribute($value){ return is_null($value) ? 'path/to/default_img.png' : $value; } يتم هنا التحقق من ما ان كان النموذج يمتلك بالفعل قيمة مسندة في خاصية مسار الصورة، وإلا فإنه يعيد مسار الصورة الافتراضية. كيف يمكن استدعائها ف المتحكم بتاريخ 21 ساعة قال Mustafa Suleiman: تستطيع استخدام خاصية "fill" في النموذج Laravel، حيث يمكن تحديد الحقول التي يجب تعديلها وترك الحقول الأخرى بدون تعديل. مثلاً، إذا كان لديك نموذج يحتوي على حقول "title" و "description" و "image" ، وتحتاج إلى تعديل "title" و "description" فقط دون تغيير الصورة، يمكنك القيام بذلك كما يلي: public function update(Request $request, $id) { $post = Post::findOrFail($id); $post->fill($request->only('title', 'description')); $post->save(); return redirect()->back(); } تم استخدام الدالة "fill" لتحديد الحقول "title" و "description" فقط وترك حقل الصورة دون تغيير، واستخدام الدالة "only" لتحديد الحقول المطلوبة فقط للتحديث. وبذلك سيتم الاحتفاظ بالصورة القديمة في الحقل "image" دون الحاجة إلى إعادة تحميلها. $post->fill($request->only('title', 'description')); بل نسبة لما يوجد في المتحكم لدي فقط افضت هذه التعليمة هل يتوجب عليي اي تغييرات اخرى لان الخاصية المذكورة لاتعمل ضمن المتحكم بشكل صحيح بتاريخ 22 ساعة قال Mustafa Suleiman: تستطيع استخدام خاصية "fill" في النموذج Laravel، حيث يمكن تحديد الحقول التي يجب تعديلها وترك الحقول الأخرى بدون تعديل. مثلاً، إذا كان لديك نموذج يحتوي على حقول "title" و "description" و "image" ، وتحتاج إلى تعديل "title" و "description" فقط دون تغيير الصورة، يمكنك القيام بذلك كما يلي: public function update(Request $request, $id) { $post = Post::findOrFail($id); $post->fill($request->only('title', 'description')); $post->save(); return redirect()->back(); } تم استخدام الدالة "fill" لتحديد الحقول "title" و "description" فقط وترك حقل الصورة دون تغيير، واستخدام الدالة "only" لتحديد الحقول المطلوبة فقط للتحديث. وبذلك سيتم الاحتفاظ بالصورة القديمة في الحقل "image" دون الحاجة إلى إعادة تحميلها. use App\Traits\UPimageTrait; //////Controller public function update(Request $request, $ad_id) { $path = $this->upimage2($request, 'name'); $Ads = Advertisement::find($ad_id); $Ads->fill($request->only('Faculty_Name')); $Ads->Adv_Img_Path = $path; $Ads->save(); } ////// اقتباس
السؤال
Osama Kha
اقوم بالتعديل على سجل ما يحوي السجل على تفاصيل وصورة احتاج الى طريقة لعدم اعادة طلب لتحميل الصورة اي يبقى محتفظ بالصورة القديمة بشكل تلقائي
مشابهة لفكرة قيمة بدائية لحقل ما
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.