我创建了一个帮助程序来运行mysql中的自定义函数,我正在尝试匹配
在DB中找到的参数,如果成功则返回X.
刀片:
@foreach($ficha as $est)
@foreach($est->equipos as $eq)
@foreach($eq->parametros as $param)
<p>{{ tiene_parametro_ficha($param->nombre ,$ficha->first()->id) }}</p> //FUNCTION, pass 2 values
@endforeach
@endforeach
@endforeach
助手:
function tiene_parametro_ficha($param, $id_est)
{
$queries =DB::select("tiene_parametro_ficha($param, $id_est)"); //I tried alias Result , it gives error too
}
Mysql功能:
BEGIN
DECLARE mivar INT;
SET @PAR=PARAM;
SET @ID_EST = ID_EST;
SELECT (if((p.nombre = @PAR),1,0)) INTO mivar
FROM estacion AS e
INNER JOIN equipo_estacion AS ee ON ee.estacion_id = @ID_EST
INNER JOIN equipo AS eq ON eq.id = ee.equipo_id
INNER JOIN equipo_parametro AS e_p ON e_p.equipo_id = eq.id
INNER JOIN parametro AS p ON p.id = e_p.parametro_id
WHERE p.nombre = @PAR AND ee.estado ="activo" AND
eq.deleted_at IS NULL LIMIT 1;
CASE mivar
WHEN 1 THEN
RETURN 'X';
WHEN 0 THEN
RETURN '0';
ELSE
RETURN '';
END CASE;
END
答案 0 :(得分:2)
您的查询中确实遗漏了SELECT
。
而不是:
$queries = DB::select("tiene_parametro_ficha($param, $id_est)");
使用:
$queries = DB::select("SELECT tiene_parametro_ficha($param, $id_est)");
还要注意,从这样的视图中运行任何查询是非常糟糕的做法。您应该在控制器中运行这些功能,并在Blade视图中使用结果。