راکت
حل شده

مشکل در روابط مدل ها

3 پاسخ

سلام دوستان . فرض کنید که من یک مدل پست و یک مدل یوزر دارم. من میخوام که در نتیجه زیر author_id در آریه داخل پست مربوطه اطلاعات کاربر نمایش داده بشه.

[
    "id" => 2
    "title" => "test"
    "slug" => "test"
    "description" => "test"
    "body" => "test"
    "image" => null
    "tags" => "test"
    "author_id" => 1
    "cat_id" => 1
    "created_at" => "2019-01-24 00:00:00"
    "updated_at" => "2019-01-24 00:00:00"
  ]

مثلا مثل زیر :

[
    "id" => 2
    "title" => "test"
    "slug" => "test"
    "description" => "test"
    "body" => "test"
    "image" => null
    "tags" => "test"
    "author" => [
    "id" => 1
    "name" => "محسن بستان"
    "email" => "mohsenbostandev@gmaIl.com"
    "email_verified_at" => null
    "password" => "4hcYj0XxSZaLySE.b9sm"
    "image" => null
    "remember_token" => "LdpHPcMItnraYxhwZH4yuzPJo6GMZfmJyXDkBukL8RqGixa"
    "created_at" => "2019-01-22 13:13:18"
    "updated_at" => "2019-01-22 13:13:18"
  ]
    "cat_id" => 1
    "created_at" => "2019-01-24 00:00:00"
    "updated_at" => "2019-01-24 00:00:00"
  ]
ثبت پرسش جدید

پاسخ‌ها

3
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

میتونید رابطه author رو در یکی از پراپرتی‌های مدل Post اضافه کنید.

class Post extends Model
{

    protected $appends = ['author'];

    public function author()
    {
        return $this->belongsTo(User::class);
    }

    public function getAuthorAttribute()
    {
        return $this->author();
    }

}

البته از گزینه Eager-Loading هم میتونید استفاده کنید

protected $with= ['author'];
mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

شما میتونید در مدل مربوط به پست های خودتون یه رابطه به صورت زیر تعریف کنید:

public function author()
{
    return $this->belongsTo('App\Models\User');
}

بعد از این میتونید به صورت زیر به اطلاعات نویسنده یا همون author دسترسی داشته باشید به صورت کد زیر :

dd($post->author)
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@khanzadimahdi
خودمم اینطوری نوشتم اما بالا گفتم که چه طوری بشه. چون من این رو داخل api قرار میدم و داخل api چطوری من باید از متد های لاراول استفاده کنم !!!

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام