Можно ли сделать что-то подобное?yii2 передать переменную другой модели
модель:
class Model1 extends ActiveRecord {
public $contentUploadedFile;
...
public function extract() {
... (assign values from uploaded file content to Model attributes, e.g:)
$this->datum = $contentUploadedFile[1];
...
}
}
модель загрузки:
class UploadModel extends Model {
public $uploadedFiles;
public function rules() {
return [
[['uploadedFiles'], 'file', 'extensions' => 'txt', 'checkExtensionByMimeType' => false, 'skipOnEmpty' => true, 'maxFiles' => 2],
];
}
}
контроллер загрузки:
class UploadController extends Controller {
...
public function actionUpload() {
$model = new UploadModel;
if (Yii::$app->request->isPost && $model->validate()) {
$files = UploadedFile::getInstances($model, 'uploadedFiles');
foreach ($files as $file) {
$t = new Model1;
$t->contentUploadedFile = file($file->tempName);
$t->extract();
$t->save();
}
}
return $this->render('upload', [
'model' => $model,
]);
}
}
, но он не работает (неопределенная переменная contentUploadedFile). Может быть, моя логика совершенно неверна. В целом, возможно ли передать значение другой модели, как-то подобное? Или это совершенно неверная логика? Было бы неплохо, если бы в Yii2 была встроенная функциональность, которая обрабатывала бы несколько созданных моделей, но не использовала бы форму и все же при правильной проверке. Есть что-то вроде этого? Спасибо.
Что значит не работает. ошибка? ... не сохранить в db? .. сохранить неправильные данные? – scaisEdge
undefined variable contentUploadedFile – user2511599
У меня есть ответ. Я думаю, что вам не хватает $ this accessing contentUploadedFile ... $ this-> contentUploadedFile .. – scaisEdge