我正在通过从数据库中检索多个数据来创建一个学号。
喜欢Course_ID.Year_Code.Student_no
为了检索相同的数字,我将我的原始学号(在创建时给出)填写为 0001、0002。
当我试图通过从数据库中获取我的学号来检索我的学号时
我得到的结果没有零。
假设 Course_ID 22 和 Year_Code 16
和Student_NO 0005
我返回的数字为 22165,应该是 22160005。 这就是我招收学生的方式。
$students = \App\Student::with('payment')->where('branch', $id)->get();
(我实际上在下面的查询中收到了不带零的 student_no)
这就是我在 blade 中的写法
<td>{{$student->Course_ID.$student->course->year_code.$student->student_no}} </td>
PS:我确实知道如何使用 str_pad 使用 native php 检索数字。请问有没有Eloquent上的方法。
最佳答案
Eloquent 没有提供直接的方法来做到这一点,因此您需要自己添加一些逻辑。
一个选择是将 student_no 作为字符串存储在数据库中,否则当它在 PHP 中作为整数获取时零将丢失,因为 PHP 不关心你的 ZEROFILL 并将 0005 视为 5。
另一种选择是在从数据库中获取数据后在 PHP 中手动附加零,例如通过在您的模型中添加访问器:
public function getStudentNoAttribute() {
return sprintf("%05d", $this->attributes['student_no']);
}
这样,每当您访问模型的 student_no 属性时,它都会自动转换为零填充字符串。
关于php - 如何用 Eloquent 零检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34800053/