2017-05-26 1 views
3

withモデルにOctoberCMSのsystem_filesを使用するファイル関係があります。 fields.yamlで保存されていないファイルをアップロードするときに「非オブジェクトのプロパティを取得しようとしています」

public $attachOne = [ 
    'return_file' => ['System\Models\File', 'public' => false, 'delete' => true] 
    ]; 

私はこれを保存する前または後に、私は、フォーム

return_file: 
     label: Attach File 
     type: fileupload 
     mode: file 
     span: right 

は今、私は私のプラグインにカスタム1にそのディレクトリから画像を移動したいしています。 afterSave()は、ファイルパスを取得するためにファイルパスを取得していないようです。

しかし、system_filesでは、私はMySQLのworkbenchで実際にそれをアップロードしていることがわかります。しかしenter image description here

私はここで、「非オブジェクトのプロパティを取得しようとすると、」私が手にバックエンドで

を保存ヒットafterSave()関数の中では何かということです。

public function afterSave() 

{ 

$custom_path = plugins_path() . '/acme/request/uploads/'; 
$file = $this->return_file->getPath(); 
$move_file = $file->move($custom_path); 

} 

バックエンドでアップロードして保存する前にファイルを移動することはできますか?

答えて

6

ファイルがまだ完全に存在していないという点は、afterSave()ですが、まだ遅延バインディングとして存在しています。代わりにこれを試してください:

$this->return_file()->withDeferred($this->sessionKey)->first()->getPath(); 
関連する問題