Добрый день. Постараюсь максимально локанично описать свою проблему. У меня есть табличка книг с полями ID, Name, Описание, Автор, Creation_Date и Date_Of_Change. Колонки во вюшке я делал с помощью DynaGrid и поэтому у меня там уже есть возможность делать экспорт товаров в формате csv. Файлы при экспорте сохраняются в загрузке.
- Я добавил во вюшке еще одну кнопку "Импорт"
- Прописал в контроллере код для импорта, которую я связал с кнопкой Импорта.
Код в контроллере:
public function actionImporter()
{
//путь к файлу
$pathToFile = Yii::getAlias('@way7');
//файл можно загрузить с помощью формы
if (!file_exists($pathToFile) || !is_readable($pathToFile)) {
//... код, если файл отсутствует
}
$data = array();
if (($handle = fopen($pathToFile, 'r')) !== false) {
$i = 0;
while (($row = fgetcsv($handle, 1000, $delimiter)) !== false) {
$model = new Kniga1();
$model->name = $row [0];
$model->creation_date = $row [1];
$model->id_avtor1 = $row [2];
if ($model->validate()) {
$model->save();
} else {
//... код в случае ошибки сохранения
}
}
fclose($handle);
};
//... код после импорта
}
Я предположил, что для импорта ему нужно указать путь, откуда брать файлы. При экспорте, экспорт таблицы в формате csv загружается в загрузки. Поэтому я подумал, что импорт должен происходить из этой папки. Для этого я зашел в папку params-local.php (как писали в инете) и создал новый алиас:
Yii::setAlias('@way7', '/Загрузки/grid-export');
И данный алиас (@way7) я прописал в контроллере, когда писал код для импорта.
Но когда я кликаю на кнопку "Импорт", то браузер мне выдает ошибку fopen(/Загрузки/grid-export): failed to open stream: No such file or directory
Скажите пожалуйста что я делаю не так и как нужно сделать? Возможно решение данной проблемы простая, но я новичок и поэтому сложно.