@yii2ru

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

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
я имя файла через api отдаю, они там запрос делают. Это значит, что мне только первый вариант подходит? Из api ведь файлы загружаются без моей логики
ты можешь спокойно отдавать любое имя и например костыль сделать с префиксом "key_1902301923.jpg". Редиректить такие имена на свой скрипт. Часть после key_ конечно должна быть уникальным id по которому ты сможешь найти имя файла в базе

Но еще лучше если ты можешь 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
как это можно завернуть

all заменяешь на count()
зачем, я считаю не количество

а вывожу посты в которых от автора более 10 ссылок

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

Dmitriy
17.07.2017
11:43:42
в Expression это не добавишь (или как ему передавть p.post_id?)
https://github.com/yiisoft/yii2/issues/10647#issuecomment-174288003

Ринат
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:37:42
Медведев негодяй!

Как бы особо не задумывался, что из-за чиновников буду иметь боль в разработке ПО)))

Из за того что ввели летнее вермя, отменили летнее время, ICU до некоторой версии(как на зло, которая в офф пакетах 16.04) сдвигает время на час по летнему, лул... Теперь страдаю, жду пока докер пересоберет РНР внутри которого ICU из исходников свежий будет.

Ринат
17.07.2017
12:53:24
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 завернуть?
SELECT count(l.id) as cnt, p.* FROM ya_post p INNER JOIN ya_link l ON p.post_id = l.post_id AND p.author_id = l.author_id WHERE p.forum_number = 36 GROUP BY p.id HAVING cnt > 10 ORDER BY p.updated_at DESC LIMIT 80

переделал на такой

Иван
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

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 показался насыщеней

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
но мне = null не нужно, оно и так будет если не строка то null
А что нужно? Чтобы null не по умолчанию, а при передаче параметра?

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
Что если костыль и в начале функции проверять - если null, то значение по умолчанию:)
Ну это костыль. Я так и не понял в чем проблема и почему нельзя сделать нормальное значение по умолчанию

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

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

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

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