The expression return App\Models\AccountStats::class returns the type string which is incompatible with the return type mandated by Czim\Repository\Contract...itoryInterface::model() of Illuminate\Database\Eloquent\Model.
In the issue above, the returned value is violating the contract defined by the
mentioned interface.
Let's take a look at an example:
interfaceHasName{/** @return string */publicfunctiongetName();}className{public$name;}classUserimplementsHasName{/** @return string|Name */publicfunctiongetName(){returnnewName('foo');// This is a violation of the ``HasName`` interface// which only allows a string value to be returned.}}
Loading history...
18
}
19
20
/**
21
* Find account using UUID
22
*
23
* @param string $uuid User UUID
24
* @param array $columns Which columns should be loaded
25
* @return \App\Models\AccountStats Statistics related to given UUID
26
*/
27
public function findByUuid(string $uuid, $columns = ['*']): AccountStats
28
{
29
return $this->findBy('uuid', $uuid, $columns);
30
}
31
32
/**
33
* Increment request counter.
34
* @param string $uuid User UUID
35
*/
36
public function incrementRequestCounter(string $uuid = ''): void
In the issue above, the returned value is violating the contract defined by the mentioned interface.
Let's take a look at an example: