Сообщения

Сообщения за Сентябрь, 2015

Yii 2 загрузка изображений

везде пишем вверху use yii\web\UploadedFile;

model

public function rules() { return [ ....  //[['img'], 'file', 'skipOnEmpty' => false], [['img'], 'file'], ]; }
controler

public function actionCreate() { $model = new Unit(); if ($model->load(Yii::$app->request->post())) { $file = UploadedFile::getInstance($model, 'img'); if (isset($file)) { $filename = uniqid() . '.' . $file->extension; $path = 'uploads/' . $filename; if ($file->saveAs($path)) { $model->img = $filename; } } if ($model->save()) { return $this->redirect('index'); } } return $this->render('create', [ …

Yii 2 статичные страницы

Изображение
Нужно всегда указывать в контролере


Удобная разработка Windows Service с TopShelf

Изображение
TopShelf - это инструмент для тестирования сервиса как консольного приложения. Чаще всего от сервиса данные можно получить только через лог, а TopShelfпозволяет выводить данные в консоль, даже не устанавливая сервис

Более подробная документация на официальном сайте.

http://topshelf.readthedocs.org/en/latest/configuration/quickstart.html

1. Создаем консольное приложение TopShelfTest

2. Проект - управление пакетами NuGet
3. Ищем в поиске и устанавливаем

4. Установим Nlog (напрямую к TopShelf он не относится, просто удобен)
Nlog.config поменем на

<?xmlversion="1.0"encoding="utf-8" ?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"autoReload="true"throwExceptions="false"internalLogLevel="Off"internalLogFile="c:\temp\nlog-internal.log" ><!-- optional, a…

Trainer Mad Max

Редактируемое дерево элементов на JS

Изображение
Для примера взял SqLite

BEGIN TRANSACTION; CREATE TABLE "page" ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, `title` TEXT NOT NULL UNIQUE, `link` TEXT, `parent_id` INTEGER NOT NULL, `f_order` INTEGER NOT NULL, FOREIGN KEY(`parent_id`) REFERENCES id ); INSERT INTO `page` VALUES (1,'root',NULL,0,1); INSERT INTO `page` VALUES (2,'1 node','http://des1roer.blogspot.ru/',1,1); INSERT INTO `page` VALUES (3,'2 child','http://des1roer.blogspot.com/2015/09/js.html',2,1); COMMIT;
Имеем:
1.config.php

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Меню</title> <link rel="stylesheet" type="text/css" href="src/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="src/themes/icon.css"> <link rel="stylesheet" type="text/css&qu…

Yii 2 быстрая установка

Изображение
1. Качаем OpenServer и устанавливаем
2. Запускаем от имени администратора
3. Открываем командную строку
4. В консоли cd F:\OpenServer\domains
5. Если необходимо укажите прокси set http_proxy=http://proxy.ххх.ru:хххх/
6. Устанавливаем версию композера  composer globalrequire"fxp/composer-asset-plugin:~1.1.1"composer self-update  
7. Устанавливаем Yii 2 Basic (в настройках не забываем установить версию PHP не ниже 5.4)
composer create-project --prefer-dist yiisoft/yii2-app-basic yii2basic
8. 


Возможно в FF придется добавить

И заключительный шаг





















Yii сохранение множества чекбоксов

Изображение
1.Таблица вида

CREATE TABLE site.a_smena ( id SERIAL, f_timestamp DATE DEFAULT now() NOT NULL, smena INTEGER NOT NULL, value INTEGER, mine_id INTEGER NOT NULL, lvl_id INTEGER, CONSTRAINT a_smena_idx UNIQUE(f_timestamp, smena, lvl_id), CONSTRAINT a_smena_pkey PRIMARY KEY(id), CONSTRAINT a_lvl_fk FOREIGN KEY (lvl_id) REFERENCES site.t_department(id) ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE, CONSTRAINT a_mine_fk FOREIGN KEY (mine_id) REFERENCES site.t_department(id) ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE ) WITH (oids = false); COMMENT ON COLUMN site.a_smena.id IS 'id'; COMMENT ON COLUMN site.a_smena.f_timestamp IS 'дата'; COMMENT ON COLUMN site.a_smena.smena IS 'смена'; COMMENT ON COLUMN site.a_smena.value IS 'значение'; COMMENT ON COLUMN site.a_smena.mine_id IS 'шахта'; COMMENT ON COLUMN site.a_smena.lvl_id IS 'горизонт';
2.view

<?php $form = $this-&…

Yii + PHPExcel

Изображение
1. Качаем phpexcel
2. Распаковываем в корень папку Classes (в данном случае это localhost)


3. Создаем тестовый файл export.php 4. Скопируем туда код из примера 01simple-download-xls
5.Поправьте
/** Include PHPExcel */
require_once dirname(__FILE__) . '/PHPExcel.php';

6.Получим Так мы проверили PHPExcel 7. Теперь Yii создаем в \webroot\site\protected\views\site\pages\excel.php
<? php
$path = $_SERVER['HTTP_HOST'] . '/phpexcel/export.php';
if (isset($array))
    $array = '?val='.json_encode($array);
echo "<iframe id='ifr' src=http://$path/$array align='left' seamless></iframe>";


8.view создаем ссылку

$myar = ['id' => 53, 'title' => 2, 'name' => ['lol', 'op']];
echo CHtml::ajaxLink(
        $text = 'Click me', array('req'), $ajaxOptions = array(
    'type' => 'POST',
    'update' => '#excel',
    'data' => $myar,
        ),…

Yii 1.* экспорт в Excel

Изображение
Простое и подробное описание импорта в Excel, а также работа с сущностями, которых нет в модели