Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组的重命名键_Php_Arrays_Database_Laravel - Fatal编程技术网

Php 数组的重命名键

Php 数组的重命名键,php,arrays,database,laravel,Php,Arrays,Database,Laravel,我有一个表,我从中获取数据以输出它们。该表由以下一组个人数据组成:姓名、姓氏、电话号码、电子邮件、生日、起始日期等 当我想在laravel上输出视图中的数据时,我会毫无问题地获取它们,但问题是,我使用循环,而不是手动编写每个条目。在使用@foreach时,我只得到我以前指定的表列的名称,所以基本上,当我输出值时,我得到的是“name”而不是“name”,lastName而不是“lastName”等等。此外,我还有一些列名,只有3个字母,比如“pro”,可以表示数千种含义 那么,我如何重命名这些键

我有一个表,我从中获取数据以输出它们。该表由以下一组个人数据组成:姓名、姓氏、电话号码、电子邮件、生日、起始日期等

当我想在laravel上输出视图中的数据时,我会毫无问题地获取它们,但问题是,我使用循环,而不是手动编写每个条目。在使用
@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