Laravel Eloquent возвращает 500, когда я пытаюсь положить детей в $ с

Вот мой красноречивый код:

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;

Не могли бы вы мне помочь?

2

Решение

Сработало когда я звоню with от контроллера

TestType::with(['children','parent'])->get();

1

Другие решения

Если вы хотите, чтобы в ответе были только дети, тогда

$testType = TestType::with('children',function($query){
$query->where('id', 1);})->first();

Проверьте, что вы используете dd() и убедитесь, что вы правильно указали отношения, используя внешние ключи в миграциях

Я надеюсь, что это сработает, если вы не будете стесняться отвечать на запросы. 🙂

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector