У меня есть некоторые трудности с красноречивыми моделями в этом случае:
$skill1 = new Skill();
$skill1->title = "Test";
$skill1->save();
$skill3 = Skill::findOrFail($skill1->id);
$this->assertEquals($skill1, $skill3);
Утверждение дает ошибку, потому что объекты не равны
Результат сравнения здесь
Если мы получаем объект из отношения, появляется много новых полей (например, оригинал-> отношение)
Я знаю, что в моделях Eloquent есть метод "is", и он работает правильно, но если мне нужно использовать основную функцию PHP, такую как in_array (например, она использует метод Collection, содержащийся в Collection), сравнение не будет Работа.
Вопрос в том, «Как сравнить эти две модели и использовать их так:»
$this->assertTrue(collect([$skill1])->contains($skill3));
Может быть, я могу перегрузить оператор сравнения, может быть, я могу сделать что-то вроде IComparable в C #?
Спасибо.