سلام دوستان
من در پروژم مجبورم از روابط استفاده کنم
در روابط چند به به چند واقعا گیج شدم از نحوه استفاده کردن و وارد کردن دیتا و ....
اومدم به طور مثال خودم روابط چند به چند رو با اضافه کردن تیبلی به صورت مثلا
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
مشکل که ایجاد نمیشه اگر درست کد بزنی ولی واقعاااااااااااااا لا توابع خود لاراول یاد بگیر بنویس
چون اصولی تر هست و میزان باگ به کمترین حد ممکن میرسه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟