
Maxim
17.07.2017
09:37:56
как ограничить доступ к файлам на серваке? лежат картинки, но всем их показывать не хочу. Что с этим можно сделать?

SiZE
17.07.2017
09:40:26
или отдавать через скрипт

Maxim
17.07.2017
09:41:20
а как второе сделать? Хочу проверять права по rbac

Google

SiZE
17.07.2017
09:42:15
если can тогда рид файл и сенд ит ту юзер

Maxim
17.07.2017
09:46:18
я имя файла через api отдаю, они там запрос делают. Это значит, что мне только первый вариант подходит? Из api ведь файлы загружаются без моей логики
у меня просто по имени файла легко можно фотографии перебором получить, поэтому не хотел отдавать каждому

SiZE
17.07.2017
09:51:40
Но еще лучше если ты можешь url до файла отдавать, тогда у тебя все в шоколаде будет.

Maxim
17.07.2017
09:53:43
последнее не понял

SiZE
17.07.2017
09:54:50
Сразу отдавать ссылку на скрипт который отдает файлы

Maxim
17.07.2017
09:57:25
оо. это же гениально)))
так вообще никто не поймет на каком серваке файлы лежат)

SiZE
17.07.2017
09:58:13
ну да, скрипт уже сам или 40* отдаст или файл

Maxim
17.07.2017
09:59:12
но дело в том, что файл то автоматически не газрузится в телефоне? это дополнительный запрос потребуетя, а там очень много записей

Ринат
17.07.2017
11:36:02
SELECT p.name FROM post p
WHERE p.forum_number = 36
AND (SELECT count(*) FROM link WHERE post_id = p.post_id AND author_id = p.author_id) > 10
ORDER BY p.updated_at DESC
LIMIT 80; как такое можно в AR завернуть?
конкретно с AND (Select ...)

Google

Ринат
17.07.2017
11:36:40
в Expression это не добавишь (или как ему передавть p.post_id?)

?
17.07.2017
11:37:45
andWhere

Ринат
17.07.2017
11:38:16
Ну а в него (SELECT count(*) FROM link WHERE post_id = p.post_id AND author_id = p.author_id) > 10 просто так же не поместить

?
17.07.2017
11:38:29
->count() помоему
но не уверен на все 100%
where(['post' => $this->id])->count();

Ринат
17.07.2017
11:40:05
так откуда $this

?
17.07.2017
11:40:18
это пример

Ринат
17.07.2017
11:40:33
Post::find()->where([
'forum_number' => 36,
])
// ->andWhere($expression)
->orderBy('created_at DESC')
->limit(80)
->all()
это пример
ну он не применим, я же про рабочий вариант спрашиваю

?
17.07.2017
11:40:55
all заменяешь на count()

Ринат
17.07.2017
11:41:03
как это можно завернуть
а вывожу посты в которых от автора более 10 ссылок

?
17.07.2017
11:41:40
сори не туда глянул

Dmitriy
17.07.2017
11:43:42

Ринат
17.07.2017
11:44:36
так, но там же массив выбирают
а не AR объект

?
17.07.2017
11:44:49
->joinWith([
'reservation' => function ($query) use ($rdRooms){
$query->where(['post_id' => 10);
}
вот так попробуй

Google

Сергей
17.07.2017
12:33:23
Всем привет!
Модель формы. Приходит массив param[], нужно проверить в rules, что каждый элемент массива целое число.
Можно как-то сделать декларативно объявив правило или надо свой валидатор только делать?

M
17.07.2017
12:33:58

Сергей
17.07.2017
12:35:11

M
17.07.2017
12:37:42
Медведев негодяй!
Как бы особо не задумывался, что из-за чиновников буду иметь боль в разработке ПО)))
Из за того что ввели летнее вермя, отменили летнее время, ICU до некоторой версии(как на зло, которая в офф пакетах 16.04) сдвигает время на час по летнему, лул... Теперь страдаю, жду пока докер пересоберет РНР внутри которого ICU из исходников свежий будет.

Ринат
17.07.2017
12:53:24
переделал на такой

Иван
17.07.2017
12:54:32
ПОдскажите как правильно отдавать файлы с сервера. Везде пишут как загрузить, а как отдать не пишут. Нашел метод sendFile но тогда получается для раздачи сохраненных картинок надо делать свой контроллер?

Ринат
17.07.2017
12:54:45
если есть связи между ya_post и ya_link в модели, getYaPost и getYaLink
YapPost::find()->select([
'COUNT({{yaLink}}.id) AS linkCount',
'{{yaPost}}.name'
]) так стоит писать?

Алексей
17.07.2017
12:56:08
joinWith нужно
ну и названия таблиц (не знаю на сколько это корректно) я обычно беру из Model::tableName

Ринат
17.07.2017
12:57:17
ну после select идёт ->joinWith('yaLink')
p.author_id = l.author_id - ещё это
http://stuff.cebe.cc/yii2docs-ru/guide-db-active-record.html, чот не очевидно очевидные вещи, хз(

Karim
17.07.2017
12:59:40
А что в итоге? AR с одним полем name?
с двумя*

Ринат
17.07.2017
13:01:14
ну из пост по сути только name нужен будет, и один первый линк

Google

Ринат
17.07.2017
13:05:56
как то не ок получается
тогда AR не прокатит

Andrey
17.07.2017
13:21:56
всем привет, пробовали ли вы когда нибудь создавать онлайн-опросы на yii2?
скажем с двумя-тремя типами вариантов ответов
не будет ли тормозить при одновременном заполнении >1к анкет?
еще в требовании есть передача изображения при заполнении анкеты, как лучше организовать прием файлов, отдельный cdn делать или на том же хосте что и сервис будет?

Maxim
17.07.2017
13:32:28
@appsmaker это не от yii2 зависит, а от сервера. Ты можешь настроить очередь задачь, кафку использовать. Посмотри это выступление
https://www.youtube.com/watch?v=fDjIm0XKeqk&index=12&list=PLPcgQFk9n9y_1bmUgKyTwUiTUsHLtzhoL

Andrey
17.07.2017
13:32:51

Admin
ERROR: S client not available

Maxim
17.07.2017
13:34:26
@appsmaker А вообще я очень сомневаюсь, что нагрузка измеряется в колличестве людей, заполняющих анкеты. Не думаю, что на подобном сайте когда-либо будет идти 1000 запросов в секунду

Stas
17.07.2017
13:35:16
кстати что там слышно о видео с конфы? после слов самдарка а том что врятли раньше полугода организаторы видео выложат что то изменилось?

Ivan
17.07.2017
13:38:35
Выложили недавно, доступ есть у тех, кто ходил на конференцию

Maxim
17.07.2017
13:45:34
@ASYOU99 @offout вообще-то выложили в открытый доступ. На сайте yiiconf.ru нужно авторизироваться и на странице каждого доклада есть вставка с видео
Но я особо полезного мало черпнул. fwdays показался насыщеней

Ivan
17.07.2017
13:46:25

Maxim
17.07.2017
13:46:45
Это еще из-за того, что видео с мастер-классов не выложили, которые сейчас стоят больших денег)))
Maxim Niko, [15.07.17 22:18]
https://yiiconf.ru/ru/schedule
Maxim Niko, [15.07.17 22:19]
Зарегистрируйся и переходи в подробнее
public function create($user_id, string $value)
Как сделать возможность принимать второй параметр null?
php 7.1

Ivan
17.07.2017
14:08:48
?string
И если так делаешь, то лучше сразу и ?string $value = null

Google

Maxim
17.07.2017
14:10:54
я думал ? работает только при указании возвращаемого типа после
:
Сейчас поищу где про вопрос написано

Ivan
17.07.2017
14:12:12
http://php.net/manual/ru/migration71.new-features.php

Maxim
17.07.2017
14:12:49
@offout благодают, уже нашел)
но мне = null не нужно, оно и так будет если не строка то null

Stas
17.07.2017
14:17:39
хм есть пограмма на конфе с видео с пятницы и в воскресенье мастерклассы а куда суббота пропала\7

Ivan
17.07.2017
14:21:53
Суббота - DevConf, а не YiiConf
И там уже выкатили ценники за видео
https://devconf.ru/ru/members/pay

Павел
17.07.2017
14:32:49

Maxim
17.07.2017
14:34:18
параметр хотел типизировать в строку, но там может и null прити. Знак вопроса решил свое дело, написал
function create(int $user_id, ?string $value)
Теперь и null заходит без ошибки

Павел
17.07.2017
14:34:36
Вот у меня другая проблема: впихнуть значение по умолчанию того типа, каким объявлен параметр

Maxim
17.07.2017
14:36:22
а зачем типизировать, если у тебя может быть несколько типов?

Павел
17.07.2017
14:38:53
Нет тип один. И у него значение по умолчанию. Такого же типа что и параметр. А для типизированных параметров значение по умолчанию может быть только NULL. Пичалька

Dmitriy
17.07.2017
14:39:58
Что если костыль и в начале функции проверять - если null, то значение по умолчанию:)

Ivan
17.07.2017
14:40:26
В некоторых случаях хорошо, что тебе на датут сделать @param stdObject|string|callable|array|false|null|mixed
В редких случаях не хватает чего-то вроде string|int

Павел
17.07.2017
14:41:27
У меня допустим 4 параметра в функции у трёх значения по умолчанию. На каждый костылить проверку не очень красиво. Ад перфекциониста

Maxim
17.07.2017
14:44:13
я не вижу проблемы преобразовать к нужному типу при передаче

Алексей
17.07.2017
14:44:25
даёшь перегрузку функций.....