实际上我有两个问题:
1)是否可以将Laravel临时配置为与数据库无关的调用,并且仅在代码中实例化的模型上工作?换句话说,在使用模型和关系时要防止任何数据库访问。
2)我试图将这段代码重构为允许1,但遇到问题
/** @var Collection $collection */
$collection = $model->relation()->whereIn('MY_ID', [
RelationModel::IDENTIFIER_FOO,
RelationModel::IDENTIFIER_BAR,
// ...
])->get();
if (0 === $collection->count()) {
throw new \InvalidArgumentException('no entry found but mandatory');
}
我尝试更改为此:
/** @var Collection $collection */
// note the missing parentheses
$collection = $model->relation->whereIn('MY_ID', [
RelationModel::IDENTIFIER_FOO,
RelationModel::IDENTIFIER_BAR,
// ...
])->get();
if (0 === $collection->count()) {
throw new \InvalidArgumentException('no entry found but mandatory');
}
但是现在我得到了错误
类型错误:函数Illuminate \ Support \ Collection :: get()的参数太少,已传递0
似乎省略了括号,返回了另一种类型的集合,该集合需要传递一个参数,而不是其他类型的集合。
是否可以将其重构为允许两种请求,无论是否具有数据库访问权限?