显示数据库中的错误记录 ID,Laravel 5.2


show wrong record id from database laravel 5.2

我的记录:

ID : M110 (varchar)
Name : Book
Price : 3000
Stock : 10

我的观点 :

@foreach($barang as $key => $value)
    <tr>
        <td>{{ $value->id }}</td>
        <td>{{ $value->name }}</td>
        <td>{{ $value->price }}</td>
        <td>{{ $value->stock }}</td>
    </tr>
 @endforeach

我的控制器 :

public function show($id)
{
    $barang = Barang::find($id);
    return view('barang.show', compact('barang'));
}

我的结果 :

ID : 0
Name : Book
Price : 3000
Stock : 10

如何显示数据库中的相同 ID (瓦尔查尔)?

您可以在模型中尝试以下操作:

protected $casts = [
    'id' => 'integer',
];

这将确保id被转换为integer,即使它被存储为 varchar

https://laravel.com/docs/5.2/eloquent-mutators#attribute-casting

我猜 ID 没有返回,因为它用于您的查询,因此您在返回记录之前就知道它。您可以打印出查询中的 ID。

Barang::find 函数实际上做了什么?