Laravel - 更改默认值 eloquent
Posted
技术标签:
【中文标题】Laravel - 更改默认值 eloquent【英文标题】:Laravel - Change default value eloquent 【发布时间】:2020-02-28 01:26:09 【问题描述】:是否可以修改 Laravel Eloquent 的默认值响应?
我有一个 API,我的数据库有一个迁移 payment
。
我的付款有一列整数status
。
$table->integer('status')->default(1);
我想知道是否可以使用任何函数更改默认值以更改Payment->get()
响应。
例如:
public static $status = [
1 => "Waiting for payment",
2 => "In review",
3 => "Payed",
];
并自动调用我的函数:
class Payment extends Model
// ...
public getStatus()
$this->status = $status[$this->status];
【问题讨论】:
【参考方案1】:几乎;您可以将getStatus()
更改为getStatusAttribute()
,这是一个Laravel Accessor,然后只需调用:
$payment = Payment::first();
dd($payment->status);
// Or
$payments = Payment::get();
foreach($payments AS $payment)
dd($payment->status);
而不是输出1
、2
等,这将覆盖'Waiting for payment'
、'In review'
等的值。
详情请参阅https://laravel.com/docs/6.x/eloquent-mutators#defining-an-accessor。
【讨论】:
我的问题是你的第一个答案:/** * Get the payment status. * * @param int $value * @return void */ public function getStatusAttribute($value) return Payment::$status[$value];
以上是关于Laravel - 更改默认值 eloquent的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Laravel / Eloquent 模型设置默认属性值?
Laravel:在“query-builder”或“eloquent”中更改原始查询