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

تعديل حقل معين إعتمادا على شرط في لارافيل

Mahmoud Alrashidi

السؤال

لدي الكود التالي:

<?php
$company = Company::find($id)
  ->update([
    "company_name" => $request["company_name"],
    "former_company" => $request["former_company"],
    "company_logo" => $imageName,
  ]);

أريد تعديل الحقل company_logo في حالة ما إذا كان المُتغير imageName لا يُساوي null أما إن كان null يقوم بتعديل الحقول الأخرى فقط. هل هناك إمكانية لعمل هذا داخل الدالة update.

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

Recommended Posts

  • 1

نعم يُمكنك عمل ذلك بإستخدام بإستخدام مُعامل الشرط الثلاثي داخل الدالة update كما هو موضح أدناه:

<?php
Company::find($id)->update([
  'company_name' => $request->company_name,
  'former_company' => $request->former_company
] + ($imageName ? [
  'company_logo' => $imageName
] : []));

و هذا يعني أننا نريد إضافة مصفوفة جديدة للمصفوفة الأولى تضم الحقل company_name في حالة ما إذا كان imageName لا يساوي null أما في الحالة المُعاكسة نضيف مصفوفة فارغة.

أو يُمكنك إستخدام التالي:

<?php
Company::find($id)->update($request->only('company_name', 'former_company') + ($imageName ? [
  'company_logo' => $imageName
] : []));

هذا بطريقة مُختصرة يُمكنك أيضاً إنشاء المصفوفة خارج الدالة update. ثم تتفحص إن كان imageName يساوي null و على أساسه تضيف حقل جديد للمصفوفة ثم تمررها للدالة update

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

  • 0

في الحقيقة هناك عدة طرق, فيمكنك تطبيق الشرط التالي على متغير $imageName بحيث إذا كان فارغ لا يعدله , ويعدل الحقول الأخرى أما إذا كان يحتوي على قيمة فيعدل جميع الحقول, بحيث تصبح 

<?php
$company = Company::find($id)
  ->update([
    "company_name" => $request["company_name"],
    "former_company" => $request["former_company"],
    "company_logo" => $imageName,
  ]);

هكذا

<?php
$company = Company::find($id);
	if($imageName != null){
		$company->update([
			"company_name" => $request["company_name"],
			"former_company" => $request["former_company"],
			"company_logo" => $imageName,
		  ]);
	} else {
		$company->update([
			"company_name" => $request["company_name"],
			"former_company" => $request["former_company"],
		  ]);
	}
  

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...