@yii2ru

Страница 988 из 1721
Trofim
20.02.2018
12:15:46
Популярность Юи растет на глазах

SiZE
20.02.2018
12:16:05
/var/www/<user>/<public_html>/<domain>
а юзеров всех в www-data пихать? @trosha_b

Антон
20.02.2018
12:16:08
Йии

Дмитрий
20.02.2018
12:18:22
Google
Maxim
20.02.2018
12:18:54
Популярность Юи растет на глазах
еще бы это на вакансиях по всему миру отражалось, не только на групе в телеграмме)

Maxim
20.02.2018
12:19:51
я не согласен

Trofim
20.02.2018
12:19:59
а юзеров всех в www-data пихать? @trosha_b
По хорошему там для каждого юзера нужно свою группу, вроде как

Там смотря как сесюрити и чрут настраивать будешь

SiZE
20.02.2018
12:20:52
окей, понял

Дмитрий
20.02.2018
12:22:11
а юзеров всех в www-data пихать? @trosha_b
соответственно рядом с public_html можно держать конфиги и логи

SiZE
20.02.2018
12:22:54
я не согласен
upwork: Laravel Framework - 511 Laravel - 739 Yii - 130 Yii2 - 45 :(

Trofim
20.02.2018
12:23:07
Ну это ультрасесюрити
Воркеры в таком случае тоже должны тоже от этих юзеров гонять

Maxim
20.02.2018
12:23:45
upwork: Laravel Framework - 511 Laravel - 739 Yii - 130 Yii2 - 45 :(
я это видел. Не согласен с таким положением вещей

Poul
20.02.2018
13:16:27
всем привет, вопрос к тем кто делал мультидоменное приложение на Advanced (вместо backend и frontend - sitename например) сделал вот что composer create-project yiisoft/yii2-app-advanced yapp 2.0.12 изменил frontend/backend folder names изменил common -> config -> bootstrap.php (добавил Yii::setAlias('@sitename', dirname(dirname(__DIR__)) . '/sitename) изменил environments -> index.php изменил имена папок environments -> dev/prod php init поправил config db поправил неймспейсы app/root/config/main -> controllerNamespace и что-то получил вот такую ошибку и туплю An Error occurred while handling another error: yii\base\InvalidRouteException: Unable to resolve the request "site/error". in /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/base/Module.php:537 Stack trace: #0 /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/web/ErrorHandler.php(108): yii\base\Module->runAction('site/error') #1 /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/base/ErrorHandler.php(111): yii\web\ErrorHandler->renderException(Object(yii\web\NotFoundHttpException)) #2 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\NotFoundHttpException)) #3 {main} Previous exception: yii\base\InvalidRouteException: Unable to resolve the request "". in /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/base/Module.php:537 Stack trace: #0 /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('', Array) #1 /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) #2 /Applications/MAMP/htdocs/tzym/yapp/w_tszakaz_ru/web/index.php(17): yii\base\Application->run() #3 {main} Next yii\web\NotFoundHttpException: Page not found. in /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/web/Application.php:115 Stack trace: #0 /Applications/MAMP/htdocs/tzym/yapp/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) #1 /Applications/MAMP/htdocs/tzym/yapp/w_tszakaz_ru/web/index.php(17): yii\base\Application->run() #2 {main} есть идеи куда копать?

?
20.02.2018
13:31:02
ну так а в ошибке у тебя что

Google
?
20.02.2018
13:31:24
он не может определить экшен site/error

Misha
20.02.2018
13:46:57
подскажите пжл. yii2 DatePicker, мне нужно выбрать в календаре дату, но сохранить в бд в виде integer. Посерчил в гугле, но вроде бы нормального решения не нашел(

?
20.02.2018
13:59:01
а при получении из базы обратно

Artemy
20.02.2018
14:00:03
Не знаю правильного решения, но я бы в beforeSave делал strtotime() на нужное поле) p.s. Телега глючит, еле написал

?
20.02.2018
14:01:13
ну как вариант beforeSave преобразовать дату в нужный формат

Максим
20.02.2018
14:01:28
Вова
20.02.2018
14:01:29
Ребят, есть здесь кто кто делал rest апи и у него был кейс запросов через браузер?

Serge
20.02.2018
14:01:47
Если просто хранить то unixtime, а если поиск и фильтрация по дате?

Максим
20.02.2018
14:02:03
хотя при поиске так же точно можно конвертировать в search модели

Serge
20.02.2018
14:03:39
Выборка из бд за период?

Максим
20.02.2018
14:04:24
Выборка из бд за период?
это пусть автор вопроса думает, он спросил - ему дали ответ

может ему не нужна выборка

Вова
20.02.2018
14:04:49
ну в плане запросы делались тупо через браузер сам) я столкнулся с одной штукой и почему-то мне кажется, что я где-то страшно что-то пропустил или же пора делать ишью: короче, поведение браузера же при cros мы знаем: делается запрос options, сервер возращает заголовок с заголовками которые он может принять от пользователя, затем делается get и все в шоколаде. только вот как работает yii\filters\Cros `public function beforeAction($action) { $this->request = $this->request ?: Yii::$app->getRequest(); $this->response = $this->response ?: Yii::$app->getResponse(); $this->overrideDefaultSettings($action); $requestCorsHeaders = $this->extractHeaders(); $responseCorsHeaders = $this->prepareHeaders($requestCorsHeaders); $this->addCorsHeaders($this->response, $responseCorsHeaders); return true; }` он проверяет все заголовки что отслал браузер, и устанавливает ему заголовки ответа все как нужно

тьфу, форматирование, ну хрен с ним

Serge
20.02.2018
14:05:08
:) ну я использую datetime

Максим
20.02.2018
14:05:15
Вова
20.02.2018
14:05:35
да вот беда, он потом возвращает true и метод апи начинает выполняться дальше, а там идет работа с User классом а в этот момент он не авторизован

Google
Вова
20.02.2018
14:05:57
я наследовал класс и в beforeAction возвращаю false если запрос options и все работает

Вова
20.02.2018
14:06:26
нууу заголовок Authorization то шлется

Максим
20.02.2018
14:06:41
ты когда авторизуешься у тебя заполняется Yii::$app->user->identity и с ним работай как с юзером

ну через API аутентификацию проходишь я имею ввиду)



Вова
20.02.2018
14:09:56
не, я понимаю, просто смотри как получается: - браузер видит что я пытаюсь отослать через него Authorization и делает сначала запрос Options на проверку, можно ли работать с этим заголовком, но НЕ шлет его в Options - на сервере поведение Cros обрабатывает заголовки запроса и устанавливает заголовки ответа, в которых разрешает работать с ним - тут по-идее нужно было завершить работу с запросом, но нет: так как Cros фильтр находится в beforeAction и затем возвращает true, метод api пытается выполниться дальше, а там идет проверка аутентификации которой еще нет. Запрос GET с разрешенным токеном будет отослан следующим - вылетает ошибка, и браузер не делает правильный GET запрос следом

ты когда авторизуешься у тебя заполняется Yii::$app->user->identity и с ним работай как с юзером

ну тут не в заголовках токен лежит, мб поэтому все ок, а я через HttpBearer пытаюсь



Максим
20.02.2018
14:10:54
ага, я выбрал вариант попроще

Вова
20.02.2018
14:11:35
просто мне кажется, что cros фильтр должен отправлять заголовки браузеру и вырубать запрос, ожидая правильного метода GET, который уже будет иметь все что нужно

Вова
20.02.2018
14:11:44
и тут я где-то явно туплю

Antony
20.02.2018
14:12:01
public function actions() { return [ 'options' => [ 'class' => 'yii\rest\OptionsAction', ], ]; }

Ну и собстенно все запросы с OPTIONS можно слать на 1 экшен.

Misha
20.02.2018
14:14:26
ну как вариант beforeSave преобразовать дату в нужный формат
а потом же нужно при выводе виджета на странице, запихнуть туда дату из бд

?
20.02.2018
14:14:57
так это тебе после выборки делать надо

можешь как вариант бехейвер напидалить который сам будет все делать

ну или перевести поле в датетайм и не морочить себе голову :)

Google
Misha
20.02.2018
14:16:26
перед тем как передать модель в вид update , преобразовать integer в нужный формат даты?

?
20.02.2018
14:16:51
да

Misha
20.02.2018
14:17:04
так это тебе после выборки делать надо
ясненько, пасиб, буду копать

?
20.02.2018
14:17:32
или у тебя будет 2 события 1 beforeSave 2е afterfind на счет второво точно не уверен но помоему так

ну если у тебя будет много где такое пиши бехавиор

Misha
20.02.2018
14:18:27
Та только в этой таблице

Admin
ERROR: S client not available

Misha
20.02.2018
14:18:54
дату рождения по тз надо в int хранить, а в виде нужно календарь выводить и выбирать в нем дату

?
20.02.2018
14:22:45
Смысл тока какой в этом я хз

Misha
20.02.2018
14:29:08
хз

сделал beforeSave strtotime

в бд сохраняет integer, а при выводе виджет сам преобразует в 11.01.1991

Смысл тока какой в этом я хз
спасибо за наводку

?
20.02.2018
14:30:37
не за что

Nastya
20.02.2018
14:39:56
хз
а вы и в паспорте Родной?

Nastya
20.02.2018
14:41:24
кайфно

жаль, не Любимый, но и так хорошо

Misha
20.02.2018
14:41:58
?

Максим
20.02.2018
14:47:55
Скажите, а если я создал слушателя событий в одной модели, из другой модели триггер сработает? У них же общее хранилище?

Google
Максим
20.02.2018
14:49:06
Естественно, $event->name одинаковый будет

Andrey
20.02.2018
14:53:59
Помню где-то делал отдельные евенты для каждой модели. (Динамически понятное дело, не руками везде прописывал :) ) если надо могу поискать.

Максим
20.02.2018
14:54:32
мне как раз общие нужны) чтобы отовсюду работали

Nastya
20.02.2018
14:55:02
расскажите потом, если разберетесь, у меня прям щас такая же задача

бродкастить на всё приложение

но, по-моему, без прямого вызова триггера не отработает

Alexey
20.02.2018
14:56:02
Броадкасть на апп

Максим
20.02.2018
14:56:43
прямого это какого? (new User())->trigger(User::TRIGGER_NAME); такой или какой то другой?

Nastya
20.02.2018
14:57:12
ну чето вроде того

Максим
20.02.2018
14:57:19
надо Пашке Дурову сказать, чтобы ввел кнопку "ответить" около юзера)

а какие еще вызовы могут быть? я только так и дергал триггер

расскажите потом, если разберетесь, у меня прям щас такая же задача
я щас уже сделал, одну общую родительскую модель сделал, в ней понавешал $this->on работает везде, попробовал по моделям разнести - чето перестало. но может я второпях что-то не так сделал, надо еще раз попробовать

Nastya
20.02.2018
15:00:17
ну я тоже думала про общий трейт или поведение

Alexey
20.02.2018
15:08:13
Месите чет, есть же соьытия класса

Event::trigger(User::class, atata)

Максим
20.02.2018
15:10:02
этого мало. что если я возьму update событие, но оно разделяется на два типа, к примеру - таблица в деньгами, одно событие - положил деньги на счет, другое - снял со счета. или меняется какое то поле, и в зависимости от поля, требуется то или иное действие

Вова
20.02.2018
15:34:47
Ну и собстенно все запросы с OPTIONS можно слать на 1 экшен.
Забыл поблагодарить, спасибо, помогло)

Andrey
20.02.2018
15:46:38
этого мало. что если я возьму update событие, но оно разделяется на два типа, к примеру - таблица в деньгами, одно событие - положил деньги на счет, другое - снял со счета. или меняется какое то поле, и в зависимости от поля, требуется то или иное действие
Если ты будешь прописывать всю эту логику в моделе у тебя получится очень жирная модель тестами ее покрывать запаришся - не самый лучший вариант. Лучше таки разделять бизнес логику и модели. В модели вызываешь событие, в событие кидаешь саму модель и необходимый контекст, подписываешь на событее хендлер, и уже в хендлене смотришь что произошло и исходя из этого вызываешь то ли иное событие (по хорошему тоже в отдельном классе что б проще было тестировать)

Страница 988 из 1721