Php 数组的重命名键
我有一个表,我从中获取数据以输出它们。该表由以下一组个人数据组成:姓名、姓氏、电话号码、电子邮件、生日、起始日期等 当我想在laravel上输出视图中的数据时,我会毫无问题地获取它们,但问题是,我使用循环,而不是手动编写每个条目。在使用Php 数组的重命名键,php,arrays,database,laravel,Php,Arrays,Database,Laravel,我有一个表,我从中获取数据以输出它们。该表由以下一组个人数据组成:姓名、姓氏、电话号码、电子邮件、生日、起始日期等 当我想在laravel上输出视图中的数据时,我会毫无问题地获取它们,但问题是,我使用循环,而不是手动编写每个条目。在使用@foreach时,我只得到我以前指定的表列的名称,所以基本上,当我输出值时,我得到的是“name”而不是“name”,lastName而不是“lastName”等等。此外,我还有一些列名,只有3个字母,比如“pro”,可以表示数千种含义 那么,我如何重命名这些键
@foreach时,
我只得到我以前指定的表列的名称,所以基本上,当我输出值时,我得到的是“name”而不是“name”,lastName而不是“lastName”等等。此外,我还有一些列名,只有3个字母,比如“pro”,可以表示数千种含义
那么,我如何重命名这些键,使我的输出应该是可读的
@foreach($data->getAttributes() as $key => $value)
@if(!empty($value))
<tr><td>{{ $key }}</td><td>{{ $value }}</td></tr>
@endif
@endforeach
@foreach($data->getAttributes()作为$key=>$value)
@如果(!空($value))
{{$key}}{{$value}
@恩迪夫
@endforeach
有两种解决方案。第一种方法只是简单地使用刀片内部的if-else条件:
@foreach($data->getAttributes() as $key => $value)
@if(!empty($value))
@if($key === 'name')
<tr><td>Name</td><td>{{ $value }}</td></tr>
@elseif($key === 'lastName')
<tr><td>Last Name</td><td>{{ $value }}</td></tr>
@else
<tr><td>{{ $key }}</td><td>{{ $value }}</td></tr>
@endif
@endif
@endforeach
您需要将此名称存储在某个位置(即数据库表中),并将其与集合一起检索 对于以下表格,这是一个基本且可能很简单的示例,说明了如何做到这一点(不考虑体系结构最佳实践):
CREATE TABLE data (
...
name VARCHAR(255),
nameText VARCHAR(255),
content TEXT,
...
你有这样的记录:
[
'name' => 'lastName',
'nameText' => 'Last Name',
'content' => 'This is your last name
]
您的控制器中可以有如下内容:
$data = Model::get();
return view('my-view', ['data' => $data]);
那么在你看来,
@foreach($data as $item)
<tr><td>{{ $item->nameText }}</td><td>{{ $item->content}}</td></tr>
@endforeach
@foreach($data作为$item)
{{$item->nameText}{{$item->content}
@endforeach
您使用的是什么版本的laravel?您尝试过列名别名吗?我认为这不是一个好方法,因为它将数据与布局紧密耦合,并且不允许有太多的灵活性。将命名值硬编码到文件中,我认为更好的方法是使名称可编辑/成为数据结构的一部分cture。
[
'name' => 'lastName',
'nameText' => 'Last Name',
'content' => 'This is your last name
]
$data = Model::get();
return view('my-view', ['data' => $data]);
@foreach($data as $item)
<tr><td>{{ $item->nameText }}</td><td>{{ $item->content}}</td></tr>
@endforeach