从 laravel 助手调用自定义 mysql 函数
Call custom mysql function from laravel helper
我在 mysql 中为 运行 自定义函数创建了一个助手,我正在尝试匹配
在数据库中找到的参数,因此如果成功,它应该 return X。
Blade :
@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
我得到错误
确定您的查询中缺少 SELECT
。
而不是:
$queries = DB::select("tiene_parametro_ficha($param, $id_est)");
使用:
$queries = DB::select("SELECT tiene_parametro_ficha($param, $id_est)");
另外,请注意:运行从这样的视图中进行任何查询都是非常糟糕的做法。您应该 运行 控制器中的那些函数(和其他查询)并在 Blade 视图中使用结果。
我在 mysql 中为 运行 自定义函数创建了一个助手,我正在尝试匹配
在数据库中找到的参数,因此如果成功,它应该 return X。
Blade :
@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
我得到错误
确定您的查询中缺少 SELECT
。
而不是:
$queries = DB::select("tiene_parametro_ficha($param, $id_est)");
使用:
$queries = DB::select("SELECT tiene_parametro_ficha($param, $id_est)");
另外,请注意:运行从这样的视图中进行任何查询都是非常糟糕的做法。您应该 运行 控制器中的那些函数(和其他查询)并在 Blade 视图中使用结果。