[英]I'm getting an Array to string conversion when trying to get a column from a stored procedure using Laravel 5.2
我已經為此苦苦掙扎了一段時間,所以我想我會在這里發布,看看是否有人對為什么總是將Array轉換為字符串轉換異常有解決方案。 這是我的代碼:
模型
public function getPackageReference(Request $request) {
$package_reference = $request->input("package_reference");
$result = DB::select("CALL GetPackageReference(?)", array($package_reference));
return $package_reference .$result;
}
存儲過程:
DELIMITER //
CREATE PROCEDURE GetPackageReference (IN package_reference_param VARCHAR(20))
BEGIN
SELECT LPAD(CAST((COUNT(DISTINCT package_reference) + 1) AS CHAR(3)), 3, '0') AS package_reference
FROM package WHERE package_reference LIKE CONCAT(package_reference_param, '%');
END //
DELIMITER ;
存儲過程結果:
致電GetPackageReference('T2AGB')
因此,在我的模型中,我希望它返回package_reference值。
干杯,
提姆
$result
變量是一個數組,通過鍵入$package_reference .$result
您要將其轉換為字符串,這就是導致異常的原因。 在PHP中,數組不能轉換為字符串。
通過將模型方法從以下位置更改,我設法獲得了所需的答案:
public function getPackageReference(Request $request) {
$package_reference = $request->input("package_reference");
$result = DB::select("CALL GetPackageReference(?)", array($package_reference));
return $package_reference .$result;
}
至:
public function getPackageReference(Request $request) {
$package_reference = $request->input("package_reference");
$result = DB::select("CALL GetPackageReference(?)", array($package_reference));
return $package_reference .$result[0]->package_reference;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.