Интересно, как получить всех братьев и сестер, которые есть у ребенка в модели Laravel?
Я знаю, что могу использовать это $siblings = \App\Child::all()->where('parent_id', $parent_id)->where('id', $id);
, чтобы получить всех детей, братьев и сестер, но я хочу знать, могу ли я сделатьдругой путь или более чистый путь?Таким образом, вы можете назвать это в виде лезвия $child->siblings->full_name
как-то так.
Но мне интересно, как использовать это как-то так в model.php
public function parent()
{
return $this->belongsTo(User::class);
}
только с использованиемbelongsTo
или hasMany
функция может быть, если это возможно?
Извините, я плохо разбираюсь в английском, поэтому я не знаю, как он называется, поэтому я могу искать его в Google.
Редактировать :: Добавление Child.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class Child extends Model
{
protected $guarded = [];
protected $dates = [
'birthdate',
'father_birthdate',
'mother_birthdate',
'guardian_birthdate',
];
public function parent()
{
return $this->belongsTo(User::class);
}
// I want to call this function only using $child->siblings (this one will show all the siblings)
// without passing the parent id
// to make it cleaner
public function siblings($parent_id)
{
return $this->all()->where('parent_id', $parent_id);
}
public function getAgeAttribute()
{
return Carbon::parse($this->attributes['birthdate'])->age;
}
public function getFullNameAttribute()
{
return $this->attributes['first_name'] . ' ' . $this->attributes['last_name'];
}
}