簡體   English   中英

嘗試使用Laravel 5.2從存儲過程中獲取列時,出現了數組到字符串的轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM