Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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 Laravel:如何为列名添加别名_Php_Laravel_Eloquent - Fatal编程技术网

Php Laravel:如何为列名添加别名

Php Laravel:如何为列名添加别名,php,laravel,eloquent,Php,Laravel,Eloquent,假设存在一个具有以下属性的用户模型实例: User { id: 1, name: 'Alexandre Thebaldi', email: 'alexandre@email.com' } 在视图中,我希望使用@foreach语句自动打印每个列别名+值,例如: <ul> @foreach($user as $attribute) <li>{{ $attribute->column_alias }}: {{ $attribute-&

假设存在一个具有以下属性的用户模型实例:

User {
  id: 1,
  name: 'Alexandre Thebaldi',
  email: 'alexandre@email.com'
}
在视图中,我希望使用@foreach语句自动打印每个列别名+值,例如:

<ul>
    @foreach($user as $attribute)
        <li>{{ $attribute->column_alias }}: {{ $attribute->value }}</li>
    @endforeach
</ul>
将像验证程序属性别名一样工作。输出结果应为:

身份证明:1 姓名:Alexandre Thebaldi 电子邮件地址:alexandre@email.com 有办法吗?

试试这个

在您的模型中添加此

/**
 * @var array
 */
protected $alias = [
    'name' => 'user name',
    'email' => 'User email',
    'other property' => ' property alias'
];

/**
 * @param $attribute
 * @return string
 */
public function getAttributeAlias($attribute) {
    return $this->alias[$attribute] ?: '';
}
然后你可以用

<ul>
    @foreach($user->getAttributes() as $attribute => $value)
        <li>{{ $user->getAttributeAlias($attribute) }}: {{ $value }}</li>
    @endforeach
</ul>
用法

试试这个

在您的模型中添加此

/**
 * @var array
 */
protected $alias = [
    'name' => 'user name',
    'email' => 'User email',
    'other property' => ' property alias'
];

/**
 * @param $attribute
 * @return string
 */
public function getAttributeAlias($attribute) {
    return $this->alias[$attribute] ?: '';
}
然后你可以用

<ul>
    @foreach($user->getAttributes() as $attribute => $value)
        <li>{{ $user->getAttributeAlias($attribute) }}: {{ $value }}</li>
    @endforeach
</ul>
用法

您可以调用$someModel->toArray或->getAttributes,这将隐藏敏感数据,如密码,以获取底层数据数组。这样,您可以打印列名及其值:

<ul>
    @foreach($user->toArray() as $key => $attribute)
        <li>{{ $key }}: {{ $attribute }}</li>
    @endforeach
</ul>
现在,“user-model-keys.id”将把id转换为标识

您可以在此处阅读有关本地化的更多信息:

您可以调用$someModel->toArray或->getAttributes,这将隐藏敏感数据,如密码,以获取底层数据数组。这样,您可以打印列名及其值:

<ul>
    @foreach($user->toArray() as $key => $attribute)
        <li>{{ $key }}: {{ $attribute }}</li>
    @endforeach
</ul>
现在,“user-model-keys.id”将把id转换为标识



您可以在此处阅读有关本地化的更多信息:

我不会让您的用户模型陷入视图逻辑的泥潭。我想你会发现很少有像这样打印出每个属性有用的情况。如果您确实发现自己处于这种情况,可以使用语言文件将“电子邮件”转换为“电子邮件地址”。我不会让您的用户模型陷入视图逻辑的泥潭。我想你会发现很少有像这样打印出每个属性有用的情况。如果你真的发现自己在这种情况下,可能会使用语言文件将“电子邮件”翻译成“电子邮件地址”。这不符合问题。在上面的示例中,输出将是列的真实名称。我需要像验证器一样对列的真实名称进行别名:“name”=>“User name”,email'=>“E-mail address”@AlexandreThebaldi查看我的更新答案,即您需要??很好的方法,也许我会使用它。您可以在一些配置文件中添加此部分,例如alias.config,使全局辅助函数不符合问题。在上面的示例中,输出将是列的真实名称。我需要像验证器一样对列的真实名称进行别名:“name”=>“User name”,email'=>“E-mail address”@AlexandreThebaldi查看我的更新答案,即您需要??很好的方法,也许我会使用它。您可以在一些配置文件中添加此部分,例如alias.config,你能引导我进入翻译文件的方法吗?当然,用更多的信息更新了我的答案。希望有帮助是 啊这符合问题。你能引导我进入翻译文件的方法吗?当然,更新了我的答案,提供了更多的信息。希望有帮助是 啊这符合问题。
<?php
return [
    'id' => 'Identification'
];