Вот мой красноречивый код:
class TestType extends Model
{
protected $with = ['parent', 'children'];
public function user(){
return $this->belongsTo('App\User');
}
public function parent(){
return $this->belongsTo('App\Models\TestType', 'parent_id', 'id');
}
public function children(){
return $this->hasMany('App\Models\TestType', 'parent_id', 'id');
}
}
У Eloquent есть дети и родитель, который называет себя. Это возвращает HTTP ERROR 500. Это работает, как только я удаляю дети от $ с
Это также работает, когда я просто вызываю его как контроллер:
$testType = TestType::where('id', 1)->first();
return $testType->children;
Не могли бы вы мне помочь?
Сработало когда я звоню with
от контроллера
TestType::with(['children','parent'])->get();
Если вы хотите, чтобы в ответе были только дети, тогда
$testType = TestType::with('children',function($query){
$query->where('id', 1);})->first();
Проверьте, что вы используете dd()
и убедитесь, что вы правильно указали отношения, используя внешние ключи в миграциях
Я надеюсь, что это сработает, если вы не будете стесняться отвечать на запросы. 🙂