Laravel 将代码重构为数据库无关的
其实我有两个问题: 1) 是否可以将Laravel临时配置为不依赖数据库的调用,并且只处理代码中实例化的模型?换句话说,在使用模型和关系时,防止任何数据库访问 2) 我试图重构此代码以允许1,但遇到了问题Laravel 将代码重构为数据库无关的,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,其实我有两个问题: 1) 是否可以将Laravel临时配置为不依赖数据库的调用,并且只处理代码中实例化的模型?换句话说,在使用模型和关系时,防止任何数据库访问 2) 我试图重构此代码以允许1,但遇到了问题 /**@var Collection$Collection*/ $collection=$model->relation()->其中('MY_ID'[ RelationModel::标识符\u FOO, RelationModel::标识符\u栏, // ... ])->get(); 如果(0
/**@var Collection$Collection*/
$collection=$model->relation()->其中('MY_ID'[
RelationModel::标识符\u FOO,
RelationModel::标识符\u栏,
// ...
])->get();
如果(0==$collection->count()){
抛出new\InvalidArgumentException(“未找到条目,但为必填项”);
}
我尝试将其更改为:
/**@var Collection$Collection*/
//请注意缺少的括号
$collection=$model->relation->where('MY_ID')[
RelationModel::标识符\u FOO,
RelationModel::标识符\u栏,
// ...
])->get();
如果(0==$collection->count()){
抛出new\InvalidArgumentException(“未找到条目,但为必填项”);
}
但现在我发现了错误
类型错误:参数太少,无法使用函数illumb\Support\Collection::get(),已传递0
似乎省略了括号,因为返回的是另一种类型的集合,它需要为另一种类型的集合传递一个参数,而不是无参数
是否可以对其进行重构以允许这两种请求(有数据库访问和没有数据库访问)?省略括号将返回一个集合,使用括号将返回一个关系实例。如果删除
()
,您可以省略对获取的调用,因为它已经是一个集合。啊,好的,谢谢您提供的信息!