سلام دوستان
من در پروژم مجبورم از روابط استفاده کنم
در روابط چند به به چند واقعا گیج شدم از نحوه استفاده کردن و وارد کردن دیتا و ....
اومدم به طور مثال خودم روابط چند به چند رو با اضافه کردن تیبلی به صورت مثلا
article_offer
خودم هندلش کردم.
اشکالی ایجاد نمیشه به جای استفاه از روابط لاراول خودمون دستی هندلش کنیم؟
سلام
از توابع لاراول استفاده کنین حتما که خوانایی کد بالا بره و تعداد خطوط کدنویسی کم بشه
روابط در لاراول بسیار راحته
یه مثال میزنم برات
فرضا یه جدول users داری و یه جدول userprofiles
خب 2 تا مدل داری به اسم user و userprofile
حالا چون هر کاربر میتونه یک پروفایل داشته باشه به صورت زیر باید متدها را در مدلها استفاده کنی
مدل user
<?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; public function userProfile(){ return $this->hasOne(user_profile::class); } }
توی کد بالا در متد userprofile نوشتم که به هر کاربر یک پروفایل دارد (با کلمه hasOne)
و توی ورودیش نام مدل userprofile را صدا زدم
حالا مدل userprofile اینطوری میشه
<?php namespace App; use Illuminate\Database\Eloquent\Model; class user_profile extends Model { public $timestamps = false; protected $fillable = ['user_id']; public function user() { return $this->belongsTo(user::class); } }
خب اینجا اومدم و یه متد ساختم به اسم user و داخلش گفتم با کلمه کلیدی belongsTo یعنی این متعلق به مدل user هست
حالا اینجوری مقادیر جدول userprofile را صدا میزنم
auth()->user()->userProfile
مشکل که ایجاد نمیشه اگر درست کد بزنی ولی واقعاااااااااااااا لا توابع خود لاراول یاد بگیر بنویس
چون اصولی تر هست و میزان باگ به کمترین حد ممکن میرسه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟