我有一个模型,我创建了一个自定义方法,用于从两个表(模型和相关的表)中检索数据,以避免多次查询。不能说我是Laravel的专家,但我没事。 这是方法:( class is Criteria)
public static function withDiagnostic()
{
return (\DB::select(\DB::raw("SELECT productspecs.product_id AS productId, criteria.id as criteriaId,criteria.name as criteriaName,diagnostic.name as diagnosticName ".
"FROM criteria, diagnostic,productspecs ".
"WHERE productspecs.criteria_id=criteria.id ".
"AND productspecs.diagnostic_id=diagnostic.id ".
"AND criteria.diagnostic_id = diagnostic.id ".
"AND criteria.inactive=0 ".
"ORDER by diagnostic.name,criteria.name")));
}
我希望能够Criteria::withDiagnostic()->where('productId',20)
,但我得到了一个未定义的方法。
我需要做什么(没有创建第二种方法来执行此操作?)
并且该自定义查询只能在Eloquent中重写吗?我的Eloquent对于多个表连接和联合等不太好。