Найдено 59 результатов

i-programmer
2019.08.10, 10:46
Форум: Общие вопросы (Yii 2.x)
Тема: declare(strict_types=1) для всего приложения?
Ответы: 3
Просмотры: 367

Re: declare(strict_types=1) для всего приложения?

ElisDN писал(а):
2019.08.08, 16:23
Нельзя. Пишите вручную в каждом.

В IDE можно вписать его в шаблон для создания *.php файла.
Понял, спасибо.
i-programmer
2019.08.08, 13:01
Форум: Общие вопросы (Yii 2.x)
Тема: declare(strict_types=1) для всего приложения?
Ответы: 3
Просмотры: 367

declare(strict_types=1) для всего приложения?

Можно ли как-то каким-то хитрым образом в одном месте прописать конструкцию declare(strict_types=1) и включить строгую типизацию для всего приложения? Или единственный путь - прописывать в каждом файле? К тому же, я читал, что объявление strict_types применяется к тому исходному файлу, откуда делает...
i-programmer
2019.07.03, 11:39
Форум: Общие вопросы (Yii 2.x)
Тема: Некорректная работа нескольких Pjax в модальном и не модальном окне.
Ответы: 6
Просмотры: 382

Re: Некорректная работа нескольких Pjax в модальном и не модальном окне.

Так вроде работает : ..... ..... ..... Да. Значит мне надо было чуть более уточняюще написать вопрос. Предположим, что запрос идет на ту же страницу: Такое возможно, когда это например и на той и на другой странице располагается виджет, который, по сути, всегда инициализируется заново и у него нет ...
i-programmer
2019.07.02, 23:00
Форум: Общие вопросы (Yii 2.x)
Тема: Некорректная работа нескольких Pjax в модальном и не модальном окне.
Ответы: 6
Просмотры: 382

Re: Некорректная работа нескольких Pjax в модальном и не модальном окне.

1. Если по умолчанию, то у GridView w0, w1, w2 и т.д. У Pjax p0, p1, p2. Это видно на основе кода из соответствующих виджетов, у которых прописано Я имел в виду фактически, а не по умолчанию. Каким образом номера переписывали (прибавляли 100) ? Задавать id в коде модалки пробовали? Pjax::begin(['id...
i-programmer
2019.07.02, 21:00
Форум: Общие вопросы (Yii 2.x)
Тема: Некорректная работа нескольких Pjax в модальном и не модальном окне.
Ответы: 6
Просмотры: 382

Re: Некорректная работа нескольких Pjax в модальном и не модальном окне.

1. Какие идентификаторы в модалке генерятся? 2. Какой JS-код в модалке генерится? 1. Если по умолчанию, то у GridView w0 , w1 , w2 и т.д. У Pjax p0 , p1 , p2 . Это видно на основе кода из соответствующих виджетов, у которых прописано public static $autoIdPrefix = 'w'; у базового виджета в /vendor/y...
i-programmer
2019.07.01, 21:13
Форум: Общие вопросы (Yii 2.x)
Тема: Некорректная работа нескольких Pjax в модальном и не модальном окне.
Ответы: 6
Просмотры: 382

Некорректная работа нескольких Pjax в модальном и не модальном окне.

Если на странице есть несколько ` GridView `, обёрнутых в ` Pjax ` с пагинацией, а также при этом по какому-либо событию подгрузить модальное окно, в котором будет еще несколько подобных гридов - то возникает проблема: идентификаторы, присваемые гриду и pjax'у начинаются опять с нуля (из-за особенно...
i-programmer
2019.06.28, 16:59
Форум: Общие вопросы (Yii 2.x)
Тема: Почему метод init виджета вызывается не только при инициализации?
Ответы: 4
Просмотры: 377

Re: Почему метод init виджета вызывается не только при инициализации?

$key = __CLASS__ . '#uid'; $this->myUid = Yii::$app->session->get($key); if ($this->myUid === null) { $this->myUid = uniqid(); Yii::$app->session->set($key, $this->myUid); } Таким образом, при первом посещении $this->myUid будет равен null, переменной будет присвоено значение выданное функцией uniq...
i-programmer
2019.06.27, 23:21
Форум: Общие вопросы (Yii 2.x)
Тема: Почему метод init виджета вызывается не только при инициализации?
Ответы: 4
Просмотры: 377

Re: Почему метод init виджета вызывается не только при инициализации?

Php не сохраняет состояния между запросами, поэтому при новом запросе на сервер, приложение заново стартует в index.php и все компоненты инициализируются заново. Для сохранения состояния между запросами в рамках одного пользователя используют сессии. Да, я про состояние и новый старт index.php тоже...
i-programmer
2019.06.27, 19:58
Форум: Общие вопросы (Yii 2.x)
Тема: Почему метод init виджета вызывается не только при инициализации?
Ответы: 4
Просмотры: 377

Почему метод init виджета вызывается не только при инициализации?

Есть виджет, в котором отображается ` GridView `, обёрнутый в Pjax . У грида есть пагинация. В виджете написано свойство и заполняется в методе ` init ` и передается в методе ` run ` в темплейт: public $myUid; public function init() { parent::init(); $this->myUid = uniqid(); } public function run() ...
i-programmer
2019.06.10, 20:34
Форум: Общие вопросы (Yii 2.x)
Тема: Где хранить интерфейсы,абстрактные классы, кастомные классы?
Ответы: 4
Просмотры: 418

Re: Где хранить интерфейсы,абстрактные классы, кастомные классы?

Нашел статьи Дмитрия Елисеева https://elisdn.ru/blog/104/domain-entities-modelling и интересную дискуссию в разделе Архитектура viewtopic.php?f=34&t=42788&start=20#p212705

Вот это мне скорее более по душе. Буду пробовать отталкиваться от этого вообще в целом.
i-programmer
2019.06.08, 23:22
Форум: Общие вопросы (Yii 2.x)
Тема: Где хранить интерфейсы,абстрактные классы, кастомные классы?
Ответы: 4
Просмотры: 418

Re: Где хранить интерфейсы,абстрактные классы, кастомные классы?

samdark писал(а):
2019.06.08, 22:17
Есть адекватное и правильное - называть по смыслу. То есть если это, например, дерево каталога, то складывать классы в catalogue. Если это дерево категорий, то в categories.
а все эти папки делать в корне или где-то еще?
i-programmer
2019.06.08, 08:43
Форум: Общие вопросы (Yii 2.x)
Тема: Где хранить интерфейсы,абстрактные классы, кастомные классы?
Ответы: 4
Просмотры: 418

Где хранить интерфейсы,абстрактные классы, кастомные классы?

Допустим для одного конкретного места в приложении я буду строить дерево. Понимаю, что оно состоит из узлов (Node), которые имеют сходные свойства и методы. Или не обязательно дерево, но тоже что-то такое, что можно выделить в некие абстракции (в абстрактную фабрику, возможно или имеющий структуру к...
i-programmer
2019.04.16, 16:32
Форум: Общие вопросы (Yii 2.x)
Тема: Изменить количество записей на странице в LinkPager
Ответы: 1
Просмотры: 195

Re: Изменить количество записей на странице в LinkPager

Почитав везде где можно понял, что минимально можно описать в конфиге через DI

Код: Выделить всё

'container' => [
		'definitions' => [
			'yii\data\Pagination' => ['defaultPageSize' => 10,
		],
	],

Жалко это выглядит как костыль ибо в LinkPager можно задать абсолютно любые параметры пагинатора, а вот этот - нет.
i-programmer
2019.04.16, 14:38
Форум: Общие вопросы (Yii 2.x)
Тема: Изменить количество записей на странице в LinkPager
Ответы: 1
Просмотры: 195

Изменить количество записей на странице в LinkPager

Есть свой виджет LinkPager , который наследуется от yii\widgets\LinkPager . namespace app\widgets\grid; use yii\widgets\LinkPager as BaseLinkPager; class LinkPager extends BaseLinkPager { public function init() { parent::init(); $this->pagination->pageSize = 2; } public function run() { return paren...
i-programmer
2019.04.12, 23:26
Форум: Общие вопросы (Yii 2.x)
Тема: Как в GridView tr th добавить класс?
Ответы: 3
Просмотры: 387

Re: Как в GridView tr th добавить класс?

Сделал кастомный класс class DataColumn extends \yii\grid\DataColumn { public function renderHeaderCell() { $provider = $this->grid->dataProvider; if ($this->attribute !== null && $this->enableSorting && ($sort = $provider->getSort()) !== false && $sort->hasAttribute($this->attribute)) { if (($direc...
i-programmer
2019.04.12, 23:25
Форум: Общие вопросы (Yii 2.x)
Тема: Как в GridView tr th добавить класс?
Ответы: 3
Просмотры: 387

Re: Как в GridView tr th добавить класс?

<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ [ 'attribute' => 'id', 'headerOptions' => ['width' => '50px', 'class' => 'asd'], ], ], ]); ?> Для каждой колонки в каждом GridView добавлять? Так себе идея.
i-programmer
2019.04.12, 20:07
Форум: Общие вопросы (Yii 2.x)
Тема: Как в GridView tr th добавить класс?
Ответы: 3
Просмотры: 387

Как в GridView tr th добавить класс?

У виджета GridView можно настроить классы для отображения, например tableOptions для тега table , rowOptions - для строк и т.д. Но я не могу никак найти настройку, чтобы добавить класс в table > thead > tr > th Как можно добавить класс в этот тег? Если есть возможность вообще свой шаблон написать дл...
i-programmer
2019.03.29, 16:46
Форум: Общие вопросы (Yii 2.x)
Тема: Как для GridView связанной таблицы сделать выборку не через '*'?
Ответы: 2
Просмотры: 288

Re: Как для GridView связанной таблицы сделать выборку не через '*'?

Seagull писал(а):
2019.03.29, 15:59

Код: Выделить всё

User::find()->joinWith(['userType' => function(Query $q) {
	return $q->select([/* fields */]);
}]);
Благодарю.
i-programmer
2019.03.29, 14:56
Форум: Общие вопросы (Yii 2.x)
Тема: Как для GridView связанной таблицы сделать выборку не через '*'?
Ответы: 2
Просмотры: 288

Как для GridView связанной таблицы сделать выборку не через '*'?

Есть GridView с пользователями. <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ [ 'attribute' => 'userType', 'value' => 'userType.Name', 'filter' => false, ], 'username', ], ]); ?> У пользователя есть тип ( userType ). Если в параметр query класс...
i-programmer
2019.03.29, 10:51
Форум: Общие вопросы (Yii 2.x)
Тема: Как вывести все SQL запросы страницы ТОЛЬКО приложения?
Ответы: 15
Просмотры: 991

Re: Как вывести все SQL запросы страницы ТОЛЬКО приложения?

Нет, у вас 'db' => [ 'dsn' => $db['dsn'], 'username' => $db['username'], 'password' => $db['password'], ], Вы берете из $db только dsn, username и пароль, а enableSchemaCache остается за кадром. Т. е. вам надо сделать 'db' => $db или дополнительно передать enableSchemaCache 'db' => [ 'dsn' => $db['...