سلام دوستان.
من یه جدول دارم به نام jobs که کاربر آگهیشو ثبت میکنه و یه جدول دارم به نام job_galleries که کاربر عکس های مربوط به آگهی رو آپلود میکنه.
مدل Job:
public function gallery() {
return $this->hasMany(JobGallery::class);
}
مدل JabGallery:
public function job() {
return $this->belongsTo(Job::class);
}
حالا میخوام وقتی داخل گالری عکسی وجود نداره، قسمت اول if اجرا بشه و وقتی داخل گالری عکسی وجود داره قسمت دوم if اجرا بشه ولی در هر دو صورت فقط قسمت دوم اجرا میشه.
@if(! auth()->user()->job->gallery)
<th>ایجاد گالری تصاویر</th>
@elseif(auth()->user()->job->gallery)
<th>گالری تصاویر</th>
@endif
ممنون میشم راهنمایی کنید.
حالا میخوام وقتی داخل گالری عکسی وجود نداره، قسمت اول if اجرا بشه و وقتی داخل گالری عکسی وجود داره قسمت دوم if اجرا بشه
کدی که شما نوشتید چک میکنه آیا از نظر منطقی یبن این دو مدل چنین relation ی وجود داره یا نه. فارغ از نتیجه و تعدادش. به همین خاطر یا باید با count تعدادش رو چک کنید که صفر نباشه یا از همه بهترخود Eloquent یک متد خیلی مشخص داره برای همین نیاز شما بنام exists :
$model->relation()->exists();
//در مثال شما میشه:
if (auth()->user()->job->gallery()->exists()) {
//GalleryImage found.
}else {
//No GalleryImage found!
}
این کد رو امتحان کن ، و اینکه فکر نکنم نیاز به elseif داشته باشی !!
@if(count(auth()->user()->job->gallery))
<th>ایجاد گالری تصاویر</th>
@else
<th>گالری تصاویر</th>
@endif
خیلی بهتره به جای gallery از جمع اون که میشه galleries استفاده کنی
حالا میخوام وقتی داخل گالری عکسی وجود نداره، قسمت اول if اجرا بشه و وقتی داخل گالری عکسی وجود داره قسمت دوم if اجرا بشه
کدی که شما نوشتید چک میکنه آیا از نظر منطقی یبن این دو مدل چنین relation ی وجود داره یا نه. فارغ از نتیجه و تعدادش. به همین خاطر یا باید با count تعدادش رو چک کنید که صفر نباشه یا از همه بهترخود Eloquent یک متد خیلی مشخص داره برای همین نیاز شما بنام exists :
$model->relation()->exists();
//در مثال شما میشه:
if (auth()->user()->job->gallery()->exists()) {
//GalleryImage found.
}else {
//No GalleryImage found!
}
@mamado
@mhyeganeh
تشکر از هر دو دوست عزیز.
با کسب اجازه از @mamado دوست عزیز، چون جواب آقای @mhyeganeh کامل تر هست من جواب ایشون رو به عنوان پاسخ برتر انتخاب میکنم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟