public function testAddFile() { $model = $this->createObject($this->modelClass, ['field' => 'gallery', 'multiple' => true, 'rules.maxFiles' => 2]); $response1 = $this->runUploadAction(['modelObject' => $model, 'attribute' => 'gallery', 'inputName' => 'file-300']); $model->gallery = [$response1['id']]; $model->save(); $response2 = $this->runUploadAction(['modelObject' => $model, 'attribute' => 'gallery', 'inputName' => 'file-300']); $model->gallery = [$response1['id'], $response2['id']]; $model->save(); $files = $model->allFiles('gallery'); $this->assertCount(2, $files); foreach ($files as $file) { $this->assertInstanceOf(File::className(), $file); $this->assertFileExists($model->filePath('gallery', $file)); } }
public function testWrongFilePath() { $model = $this->createObject($this->modelClass); $response = $this->runUploadAction(['modelObject' => $model, 'attribute' => 'image', 'inputName' => 'file-300']); $model->image = $response['id']; $model->save(); $model->image = 'test'; $model->save(); $file = File::findOne($response['id']); $this->assertInstanceOf(File::className(), $file); $this->assertEquals($response['id'], $model->file('image')->id); }
public function getFiles($callable = null) { return $this->hasMany(File::className(), ['id' => 'file_id'])->viaTable('news_files', ['news_id' => 'id'], $callable); }