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'
];