Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 将代码重构为数据库无关的_Laravel_Laravel 5_Eloquent - Fatal编程技术网

Laravel 将代码重构为数据库无关的

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

其实我有两个问题:

1) 是否可以将Laravel临时配置为不依赖数据库的调用,并且只处理代码中实例化的模型?换句话说,在使用模型和关系时,防止任何数据库访问

2) 我试图重构此代码以允许1,但遇到了问题

/**@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

似乎省略了括号,因为返回的是另一种类型的集合,它需要为另一种类型的集合传递一个参数,而不是无参数


是否可以对其进行重构以允许这两种请求(有数据库访问和没有数据库访问)?

省略括号将返回一个集合,使用括号将返回一个关系实例。如果删除
()
,您可以省略对
获取的调用,因为它已经是一个集合。啊,好的,谢谢您提供的信息!