为了账号安全,请及时绑定邮箱和手机立即绑定

在刀片视图中保留前导零

在刀片视图中保留前导零

PHP
ABOUTYOU 2023-08-06 10:45:23
我正在使用 Blade 视图编写 Laravel 7 应用程序。我的一个 MySQL 表包含不遵循特定模式的客户端tools(id重组这些 id 不在讨论范围内,因为它们来自客户端不会更改的另一个系统)。其中一些 ID 具有前导零,应该在所有视图中显示,例如 055A。id 在数据库中存储时带有前导零 (varchar(64)),没有问题。edit但是,当刀片视图显示 id 时,前导零消失了,而且,与和deleteis 的链接会myapp/public/tool/5A5/edit导致错误 ofc。我的方法是显示 id,<td>{{ sprintf('%04d', $tool->id) }}</td>但并非所有 id 都有 4 个字符,并且链接仍然类似于myapp/public/tool/5A5/edit,因为 Blade 获取整个$tool对象。这是我的观点:@foreach($tools as $tool)<tr>   <td>{{ sprintf('%04d', $tool->id) }}</td> //not enough!   <td>{{ $tool->title }}</td>   <td style="text-align: center;">{{ $tool->tooltype->name }}</td>   @can('manage-tools', App\User::class)   <td class="td-actions text-right">      <form action="{{ route('tool.destroy', $tool) }}" method="post">         @csrf           <a rel="tooltip" class="btn btn-success btn-link" href="{{ route('tool.edit', $tool) }}" data-original-title="" title="">            <i class="material-icons">edit</i>            <div class="ripple-container"></div>         </a>         @method('delete')         <button type="button"  value="disabled" disabled class="btn btn-danger btn-link" data-original-title="" title="delete"          onclick="confirm('{{ __("Wirklich löschen?") }}') ? this.parentElement.submit() : ''">         <i class="material-icons">close</i>         <div class="ripple-container"></div>         </button>      </form>   </td>   @endcan</tr>@endforeach从我的工具控制器:public function index(Tool $model){  $this->authorize('manage-tools', User::class);  return view('tools.index',['tools' => $model->get()]); }
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

Laravel 会在幕后做一些“魔术”来优雅地处理 id 字段,例如去除前导零。由于在大多数情况下模型 ID 都会递增,因此默认情况下会出现此行为。您可以在没有递增 id 字段的模型上使用以下设置来禁用此行为。在你的情况下:


class Tool extends Model

{

    public $incrementing = false;

    ....


查看完整回答
反对 回复 2023-08-06
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

对于那些必须在双胡子内保留前导零的人,请注意这里。我正在使用 Laravel 8,通过添加protected $casts = ['id_column_name' => 'array']可以帮助我防止刀片删除前导零,因此编辑页面的链接可以正常工作。



查看完整回答
反对 回复 2023-08-06
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信