
Alexey
12.12.2017
05:30:28
Смотри paulzi/yii2-json-behavior и не изобретай великов)

equicolor
12.12.2017
05:30:36
Короче, попробую еще раз) Если приходит фич-реквест, который проще реализовать хранением json-а произвольной структуры в поле бд, то мы либо маппим json сами, либо тащим какой-то extension. Ни один из них не предоставил мне хранение json-объектов как моделей. Я же могу это сделать (и сделал, но пока без валидации)

Alexey
12.12.2017
05:32:12
Нормального маппинга jsonschema в модели ты все равно не сделал

Google

equicolor
12.12.2017
05:33:01
Окей, может стоить на форуме попробовать, а то тут сложно конструктивно?

Malika
12.12.2017
05:43:30
всем привет
есть вопрос

Alexey
12.12.2017
05:45:27


Malika
12.12.2017
05:45:48
как принять файл через рест
public function actionCreate(){
$request = Yii::$app->request;
if($request) {
$model = new Application();
$file = UploadedFile::getInstanceByName('file');
if ($model->file && $model->validate()) {
$filename = uniqid() . '.' . $model->file->extension;
$model->file->saveAs(Yii::getAlias('@frontend/web/files/' . $filename));
$model->filename = $filename;
$model->user_id = $request->getBodyParam('user_id');
$model->category_id = $request->getBodyParam('category_id');
$model->district_id = $request->getBodyParam('district_id');
$model->address = $request->getBodyParam('address');
$model->apartment = $request->getBodyParam('apartment');
$model->subject = $request->getBodyParam('subject');
$model->body = $request->getBodyParam('body');
$model->type = $request->getBodyParam('type');
$model->save();
return [
'result' => true,
'success' => 'Ваше обращение отправлено.'
];
} else {
return [
'result' => null,
'error' => 'Not saved',
];
}
}
}
отправляю через postman
Content-Type multipart/form-data
но файл не приходит
а без headers приходит как быть?


Alexey
12.12.2017
05:47:09
там надо читать rawBody

Malika
12.12.2017
05:47:40

Google

Alexey
12.12.2017
05:49:24
для начаала посмотри че у тя в $_FILES

Malika
12.12.2017
05:49:48
null с Content-Type multipart/form-data

Alexey
12.12.2017
05:50:31
оч странно ?

Malika
12.12.2017
05:51:00
?
'request' => [
'parsers' => [
'application/json' => 'yii\web\JsonParser',
],
],
в конфиге так указала
'multipart/form-data' => 'yii\web\MultipartFormDataParser'
это не работает что ли

Alexey
12.12.2017
05:52:46
без этого вроде норм работало

Malika
12.12.2017
05:53:10
у вас есть пример кода или например
от своего чтоли

Alexey
12.12.2017
05:53:28
да у меня тоже самое :D
$_FILES он заполняется до реквест парсеров
самим php
странно что он у тя пустой

equicolor
12.12.2017
05:54:30

Alexey
12.12.2017
05:54:55

equicolor
12.12.2017
05:55:09
В конфигурации приложения?

Alexey
12.12.2017
05:55:24
поведения

equicolor
12.12.2017
05:57:00
поведения
в поведениях может накопиться много всего, а я собираюсь использовать анонимные классы PHP7, очень удобно объявлять модель прямо "inline". Т.е. мне не нужны новые файлы с классами или "лишние" классы внутри файла. Поэтому я придумал статический метод, чтобы собрать все дочерние документы вместе.

Google

Malika
12.12.2017
05:57:24

equicolor
12.12.2017
05:57:47
поведения
Мне, кажется, что ваш аргумент стоит внимания. Но тогда для моего кейса неудобное API. Подумаю над этим, спасибо
Таки если бы кто-то сделал до меня расширение рабочее на синтаксисе new class - я бы его заюзал

Malika
12.12.2017
06:01:35
ниче если без headers будем отправлять?

equicolor
12.12.2017
06:37:55
Вопрос старожилам http://yiiframework.ru/forum/
Если я хочу обсудить свое расширение, плюсы-минусы и целесообразность - оно еще не готово к релизу - это в общий тред вопросы или сразу в авторский код?

Vladislav
12.12.2017
06:51:53
Всем привет) где можно посмотреть полную рабочую реализацию загрузки фотографий в виджете vova07\imperavi\Widget, а то у меня не хочет грузить и я хз почему.

Evgeniy
12.12.2017
06:52:29
Привет, в логи ничего не пишет?

Vladislav
12.12.2017
07:13:19
в консоли браузера ничего
а дебага нет так как он на хостинге лежит
а хотя нет 403 ошибка есть
ладно спасибо)) я уже сам продвинулся)

Maxim
12.12.2017
07:25:45

Roman
12.12.2017
07:26:07

Maxim
12.12.2017
07:26:53

equicolor
12.12.2017
07:27:20

Vladislav
12.12.2017
07:27:23
права были не прописаны в behaviors контрллера

Evgeniy
12.12.2017
07:27:29

equicolor
12.12.2017
07:27:49

Alexey
12.12.2017
07:28:20
когда хочется писать как на джаве, но на пхп

Vladislav
12.12.2017
07:28:39
хотя щас включил дебак ajax на загрузку проходит с результатом 200, но куда файл девается не понятно или я пути прописал не верно

Google

equicolor
12.12.2017
07:28:57
ну если хочется вспоминать ['param'] или >param - то можно и не запариваться)
или дать всем установку юзать phpDoc. а можно заюзать value objects и забить, где это хранится и как реализовано (идея такая)

Alexey
12.12.2017
07:30:30
не оч понятно как это поможет
в IDE подсветки все равно не будет
а если не будет подсветки, то можно и json behavior заюзать, который в stdObject все десериализует

equicolor
12.12.2017
07:31:54
Поможет просто: у тебя отныне есть Model, у которой вполне может быть model->submodel->subsubmodel. StdObject не аргумент - что если мне нужна логика над моиими inline-моделями?

Admin
ERROR: S client not available

Alexey
12.12.2017
07:32:13
единственный плюс который тут можно найти - это валидация схемы, но у тебя ее вроде и нет

equicolor
12.12.2017
07:32:29
Все заранее договорились, что работают с моделями как нормальной доменной моделью и не парятся, что это было json поле или relation

Alexey
12.12.2017
07:33:15
а потом тебе запостят [[[[[[[]]]]]]]] в профиль
и все пойдет по звезде ?

equicolor
12.12.2017
07:33:41
С чего же? Делайте FormModel и валидируйте.
Или я сделаю там валидацию
Вы модели как сохраняете? ->save()? А пачку моделей?

Alexey
12.12.2017
07:34:09
в общем ты пытаешься в активрекорд скотчем и изолентой прикрутить доменную модель, это оч странно

equicolor
12.12.2017
07:34:20
Типа того

Alexey
12.12.2017
07:34:39
активрекорд это другой совсем паттерн (:

equicolor
12.12.2017
07:34:57
Пытаюсь найти быстрый способ писать поддерживаевыеме приложения на yii с минимальным оверхедом по разработке. Вот с этой штукой пока всё получается

Alexey
12.12.2017
07:35:01
даже елисеев когда свои репозитории и DDD пытается колхозить - использует активрекорд зачем-то

Google

equicolor
12.12.2017
07:35:41
Это какие, data-driven ад-то легко поддерживается?)

Ортем
12.12.2017
07:36:45
Что именно от ад требуется ?

equicolor
12.12.2017
07:37:25
Ад - это противоположность раю)

Alexey
12.12.2017
07:44:52
че-то тут не так с инструментами ?

Сергей
12.12.2017
07:53:22
Добрый день!
Нужна простенькая система для хранения паролей. Вопрос - как их собственно хранить, чтобы было безопасненько :)
Есть мысль - хранить в шифрованном виде, а ключ не хранить на сервере, а запрашивать у конечного пользователя.... но тоже не очень удобно

Никита
12.12.2017
07:57:01

Александр
12.12.2017
07:57:04

Сергей
12.12.2017
07:57:24

equicolor
12.12.2017
08:03:51
А вот если затащить сюда монгу то как бы и нет проблем. Это именно в условиях ограниченного стека закостылить источник данных

Alexey
12.12.2017
08:04:43
есть подход schema-first, а есть data-first
вот ты пытаешься данные без нормализации с переменной структурой в существующую схему RDBMS уместить и получаешь боль :D

equicolor
12.12.2017
08:07:34
Да, у нас подход feature-first, так что никому нет дела, что там первично было на этапе постановки задач =)

Alexey
12.12.2017
08:08:09

equicolor
12.12.2017
08:08:26
Ну так, я просто вижу уже 7 лет, везде люди лепят такие велосипеды над mysql+yii