2017-04-18 12 views
0

ニュース項目を作成し、その主キーに対応する位置にサムネイルを保存しようとしています。$ this-> getKeyこれはのアップデートでで利用可能ですが、に作成するとになります。Laravel(5) - 'create'のモデルマニピュレータでgetKey()を使用する方法

私は、ファイルアップロード処理するために、マニピュレータにsetThumbnailImageAttributeを使用しています:

public function setThumbnailImageAttribute($value) { 
    $this->setImage(
     'thumbnail_image', 
     $value, 
     'news/'.$this->getKey().'/thumbnail_image/' 
    ); 
} 

setImageは、アップロードを処理すると

の属性に正しい値を設定(およびそのデータベース) 更新この結果は正しく

のニュース/ 1/thumbnail_image/'

で、これは誤っで結果を作成します。どのように

'// thumbnail_image /ニュース' が

を私はミューテータでこれを達成するのですか、それとも別のアプローチですか?

+0

これは派生した属性のようです。それをデータベースに保存するべきではありません(特に、既存のレコードからそれを構築するのは簡単です)。 – apokryfos

答えて

1

これはあなたのアプローチでは達成できません。はい!そうするためのいくつかの厄介なハッキングがあります。しかし、レコードが作成された後、このメソッドを手動で呼び出す必要があります。

+0

私は同じ方向に考えていましたが、Laravelは$ value .. mmでこのメソッドを呼び出しています。 – Gilbert

関連する問題