У меня есть служебный файл, в котором я запускаю хранимую процедуру:
function createCampaign($campaignName, $groupNumber){
$stmt = \DB::connection('odbc')->getPdo()->prepare('CALL SCHEMA.INSERT_CAMPAIGN(?,?,?)');
$stmt->bindValue(1,$campaignName, PDO::PARAM_STR);
$stmt->bindValue(2,$groupNumber, $groupNumber==0 ? PDO::PARAM_NULL : PDO::PARAM_INT);
$stmt->bindParam(3,$out2, PDO::PARAM_INT);
$stmt->execute();
return $out2;
}
Когда я запускаю эту хранимую процедуру, третий параметр возвращает OUT_CAMPAIGN_ID
и ожидаемый идентификатор, так что это работает,Я возвращаю эту выходную переменную с $out2
Мой контроллер, который вызывает предыдущую функцию и также ожидает возврата:
public function createCampaign(Request $request)
{
$campaignName = $request->campaignName;
$groupNumber = $request->groupNumber;
$campaignService = new CampaignService();
$createCampaign = $campaignService->createCampaign($campaignName, (int) $groupNumber);
return Response::json(["OUT_CAMPAIGN_ID" => $createCampaign]);
}
Однако, когда я консоль журнала data.OUT_CAMPAIGN_ID
в моем блейде или даже в консольном журнале data
он просто дает мне OUT_CAMPAIGN_ID:null
Я делаю что-то не так, как я ожидаю обратно в контроллер?
Хранимая процедура:
BEGIN
INSERT INTO SCHEMA.TABLE(NAME,NUMBER)
VALUES (IN_NAME, IN_NUMBER);
SET OUT_ID = IDENTITY_VAL_LOCAL();
END;