雄辩的模型比较麻烦

时间:2018-06-27 16:45:55

标签: php laravel laravel-5 activerecord eloquent

在这样的用例中,我对雄辩的模型有一些困难:

$skill1 = new Skill();
$skill1->title = "Test";
$skill1->save();

$skill3 = Skill::findOrFail($skill1->id);

$this->assertEquals($skill1, $skill3);

断言给出错误,因为对象不等于 Comparasion result here 如果我们从关系中获取对象,则有很多新字段(例如original-> relation)

我知道,在Eloquent模型中有一个“ is”方法,它可以正常工作,但是如果我需要使用in_array之类的核心PHP函数(例如,它在Collection的“ contains”方法中使用),则比较不会工作。

问题是“如何比较这两个模型并像这样使用它:”

$this->assertTrue(collect([$skill1])->contains($skill3));

也许我可以重载比较运算符,也许我可以在C#中使smthng像IComparable一样?

谢谢。

1 个答案:

答案 0 :(得分:0)

比较属性,而不是整个模型:

$wasRecentlyCreated

如果您将新创建的模型与数据库中的模型进行比较,checkIfRunning() {}会有所不同(除其他外)。