【问题标题】:Laravel - Change default value eloquentLaravel - 更改默认值 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];
  }
}

【问题讨论】:

    标签: php laravel eloquent laravel-migrations


    【解决方案1】:

    几乎;您可以将getStatus() 更改为getStatusAttribute(),这是一个Laravel Accessor,然后只需调用:

    $payment = Payment::first();
    dd($payment->status);
    // Or
    $payments = Payment::get();
    foreach($payments AS $payment){
      dd($payment->status);
    }
    

    而不是输出12等,这将覆盖'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]; }
    猜你喜欢
    • 2020-01-18
    • 2013-11-30
    • 2022-12-11
    • 2016-08-28
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2019-07-05
    • 2014-11-06
    相关资源
    最近更新 更多