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

السؤال

نشر

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

<?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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...