0

Laravelフレームワークを使ったアプリケーションの作成を初めて始めました。

Eloquentは非常に強力でコードを節約するツールのようですが、モデルでデータベーステーブルとは異なる属性名を使用する方法がわかりません。

ここに私の対立:

データベース:iddog、dtname、dtbirth、dtfoo、fimom、fidad
属性:id、name、birth、foo、mom、dad

LaravelフレームワークのEloquentから拡張されたモデルでそれを行う可能性はありますか?関連するデータベースフィールドとは異なる名前の属性?

または、ここで行うように、データベーステーブルのフィールドを呼び出すのはもうクールではありませんか?

前もって感謝します!

4

2 に答える 2

1

現在、laravel 5.1では、Getters&SettersではなくAccessorと呼んでいます。

そのため、最近では、このような新しい属性を作成するアクセサーがあります

public function getPlusFiveAttribute()
{
    return $this->plus_five + 5;
}

残念ながら、「plus_five」という名前のテーブルフィールドがすでにある場合、このアクセサは機能しません。

あなたはこのように行く必要があります、それはうまくいきます

public function getPlusFiveAttribute()
{
    return $this->attributes['plus_five'] + 5;
}

これが機能する別のアプローチです

public function getPlusFiveAttribute($value)
{
    return $value + 5;
}
于 2016-03-02T22:52:03.607 に答える
0

データベースの名前がモデルと異なるのはなぜですか?

あなたはそれを行うことができますが-あなたはあなた自身のために仕事を作成し、そして起こりうる新しいバグを導入するだけです。データベース名を使用するだけです。

必要な場合は、Getters&Settersをチェックしてください。

于 2013-02-24T14:25:07.013 に答える