我遇到的情况是我必须为许多模型执行相同的查询。我想知道是否有可能在阵列中违反我的Eloquent类然后循环。这是一个pseidocode:
$models = [Model1, Model2, Model3, Model4];
foreach($models as $model){
$model::where(...)->...
}
尝试了几种方法但总是以TypeError结束。这是否可能,如果是这样 - 什么是正确的方法?
答案 0 :(得分:3)
它应该没有任何问题,例如:
$models = [\App\User::class, \App\Admin::class];
foreach ($models as $model) {
$user = $model::where('email','sample@example.com')->first();
}
答案 1 :(得分:1)
只需创建依赖项,文本就绪模型
class MyController extends Controller
{
protected $models;
protected $result;
public function __construct(Model1 $model,Model2 $model2){
$this->models[]=>$model1;
$this->models[]=>$model2;
//...
}
pubflic function(){
foreach($this->models as $model){
$this->result[]=$model->where(...)//your code
}
}
}