我正在使用 Laravel 8 創建一個應用程式。在這里,我需要為每個訂單生成一個訂單號。為此,我使用 Helper 并撰寫了此代碼。它第一次作業,從第二次開始,它從回傳行顯示“未定義變數 $last_number”。
public static function OrderNumberGenerator($model, $trow, $length = 4, $prefix)
{
$data = $model::orderBy('id', 'desc')->first();
if (!$data) {
$og_length = $length;
$last_number = '';
} else {
$code = substr($data->$trow, strlen($prefix) 1);
$actual_last_number = ($code / 1) * 1;
$increment_last_number = $actual_last_number 1;
$last_number_length = strlen($increment_last_number);
$og_length = $length - $last_number_length;
$last_number_length = $increment_last_number;
}
$zeros = "";
for ($i = 0; $i < $og_length; $i ) {
$zeros .= "0";
}
return $prefix . '-' . $zeros . $last_number;
}
從我的控制器我使用這個:
Helper::OrderNumberGenerator(new OrderDetail, 'orderNo', 5, 'DRW');
uj5u.com熱心網友回復:
public static function OrderNumberGenerator($model, $trow, $length = 4, $prefix)
{
$last_number = '';
$data = $model::orderBy('id', 'desc')->first();
if (!$data) {
$og_length = $length;
} else {
$code = substr($data->$trow, strlen($prefix) 1);
$actual_last_number = ($code / 1) * 1;
$increment_last_number = $actual_last_number 1;
$last_number = strlen($increment_last_number);
$og_length = $length - $last_number;
$last_number = $increment_last_number;
}
$zeros = "";
for ($i = 0; $i < $og_length; $i ) {
$zeros .= "0";
}
return $prefix . '-' . $zeros . $last_number;
}
我認為你的代碼應該是這樣的。我希望它對你有幫助。
uj5u.com熱心網友回復:
你必須定義
$last_number = ' ';
在 if 陳述句之前,當它退出 if 塊時,該變數從記憶體中洗掉
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331009.html
