سلام دوستان . فرض کنید که من یک مدل پست و یک مدل یوزر دارم. من میخوام که در نتیجه زیر 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"
]
میتونید رابطه 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'];
شما میتونید در مدل مربوط به پست های خودتون یه رابطه به صورت زیر تعریف کنید:
public function author()
{
return $this->belongsTo('App\Models\User');
}
بعد از این میتونید به صورت زیر به اطلاعات نویسنده یا همون author دسترسی داشته باشید به صورت کد زیر :
dd($post->author)
@khanzadimahdi
خودمم اینطوری نوشتم اما بالا گفتم که چه طوری بشه. چون من این رو داخل api قرار میدم و داخل api چطوری من باید از متد های لاراول استفاده کنم !!!
میتونید رابطه 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'];
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟