php - 如何用 Eloquent 零检索数据

标签 php mysql laravel laravel-5 eloquent

我正在通过从数据库中检索多个数据来创建一个学号。

喜欢Course_ID.Year_Code.Student_no

为了检索相同的数字,我将我的原始学号(在创建时给出)填写为 0001、0002。

当我试图通过从数据库中获取我的学号来检索我的学号时

我得到的结果没有零。

假设 Course_ID 22Year_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/

相关文章:

c# - AES _Encryption 在 Mysql 中,在 C#.Net 中解密

php - 我需要使用 php 更改具有不同 id 的表的 html 元素

php - 尝试获取 edit.blade.php(laravel 4.2) 中非对象的属性

php - 同一张表上的相关项目

php - Laravel 5 独特的表单验证忽略 id/slug

Mysql比较字符串

php - Laravel Maatwebsite/Laravel-Excel 更新(如果存在)

ajax - Laravel 中的三种不同方法用于请求是否请求 JSON。他们是一样的吗?有重叠吗?

php - 如何比较mysql中一张表中具有相同值但效果不同的两个字段?

php - #1242 - 子查询返回超过 1 行