$fp = fopen($path,'x');
fwrite($fp, $content);
fclose($fp);
$link = 'https://media.istockphoto.com/photos/two-red-balloons-picture-id505640210?k=6&m=505640210&s=612x612&w=0&h=cr76FHFVLlU1y-artTN3-T77P1XzTwbfou2zjLlZxms=';
copy($link, realpath(dirname(__FILE__)) . '/image/505640210.jpg');
Можно ли сделать такую валидацию? Не нашёл подобных примеров в документации.
moonland/phpexcel
? app\models
$objInputType = \PHPExcel_IOFactory::identify($fileInput);
$objReader = \PHPExcel_IOFactory::createReader($objInputType);
class ProductsImportController extends Controller
{
public function actionImport()
{
$file = (object)Yii::$app->request->post('FlightsImport'); // получаете имя файла
$fileInput = Yii::getAlias('@webroot') . '/uploads/import_file/' . substr(strrchr($file->importfile, '/'), 1); // полный путь к файлу
/* читаете файл */
$objInputType = \PHPExcel_IOFactory::identify($fileInput);
$objReader = \PHPExcel_IOFactory::createReader($objInputType);
$objExcel = $objReader->load($fileInput);
$sheet = $objExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
for($row = 1; $row <= $highestRow; $row++){
if($row == 1) continue;
$rowData = $sheet->rangeToArray('A'.$row.':'.$highestColumn.$row, null, true, false);
// print_r($rowData);
// объект модели, которую надо заполнить
$flights = new FlightsImport();
// заполняете нужные атрибуты
$flights->title = FlightsImport::findAirlineId($rowData[0][3]); // название компании
$flights->save(false);
}
}
}
$rowData[0][3]
сделайте в методе print_r($rowData)
и увидите, что и какие данные Вы получили из файла. controller/action
'post' => 'post/index',
// возможные действия в PostController
'post/<_a:\w+>' => 'post/<_a>'
Начал делать прямо в модели, но правил валидации будет слишком много и все данные имеют запросы к базе.
Подскажите как выводить ошибки валидаци вверху формы
$form = ActiveForm::begin([
'id' => $idForm,
]);
echo $form->errorSummary($model);
composer update
, после этого создаться директория vendor и подтянет все зависимости. $model = new ModelName();
$form->field($model, 'attribute')->textInput()
// в контролере
public $var
$var = new ModelName();
// в layout
$model = $this->context->var
$form->field($model, 'attribute')->textInput();
// в модели
public $c_id
$query->andFilterWhere([
'c.course_id' => $this->c_id
])
//в gridview
[
'attribute' => 'c_id',
],
runtime/mail
посмотрите и в конфигурации 'useFileTransport' =>false,
public function getFullName()
{
return $this->name . ' ' . $this->lastname;
}
'class'=>'\kartik\grid\DataColumn',
'attribute'=>'organizer_id',
'value'=> 'fullName;
],
'value' => function($model){
return $model->getFullName()
}