These are chat archives for LaravelRUS/chat

11th
Jul 2017
Andrey Kravchuk
@TaPTaK
Jul 11 2017 06:39
@Daaner периодически и муты роздают...
Ваня Devium
@webdevium
Jul 11 2017 08:19
тишина то какая
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 08:33
Все испухались!
Ваня Devium
@webdevium
Jul 11 2017 08:33
Вторник же, нельзя пухать :)
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 08:34
пухать вообще неприлично
Andrew Rusev
@anrus
Jul 11 2017 09:13
Здравствуйте, нужен совет.
Делаем приложение react, laravel and graphql.
Как лучше всего сделать авторизацию и регистрацию?
Делать Server-Based Authentication или Token-Based Authentication?
Какие библиотеки посоветуете?
KarmaBot
@KarmaBot
Jul 11 2017 09:13
@anrus, привет, как настроение?
Ваня Devium
@webdevium
Jul 11 2017 09:13
@anrus jwt
Andrew Rusev
@anrus
Jul 11 2017 09:16
@webdevium спасибо, есть какая-то библиотека для него в ларавел
KarmaBot
@KarmaBot
Jul 11 2017 09:16
Спасибо (+1) для @webdevium принято! Текущая карма +164.
Ваня Devium
@webdevium
Jul 11 2017 09:16
@anrus tymon
JhaoDa
@jhaoda
Jul 11 2017 09:17

Server-Based Authentication или Token-Based Authentication

Не понял противопоставления, если токен всё равно выдаёт сервер

Ваня Devium
@webdevium
Jul 11 2017 09:18
@jhaoda я думаю он про сессии
Andrew Rusev
@anrus
Jul 11 2017 09:18
хорошо, просто мне говорят, что эту нужно поставить а потом допилить https://cartalyst.com/manual/sentinel/2.0
JhaoDa
@jhaoda
Jul 11 2017 09:18
@anrus пусть говорят
Andrew Rusev
@anrus
Jul 11 2017 09:18
@jhaoda да про сесии
Ваня Devium
@webdevium
Jul 11 2017 09:18
ключ на 20
JhaoDa
@jhaoda
Jul 11 2017 09:18
@anrus ну так почему бы и не называть это Session-Based?
Andrew Rusev
@anrus
Jul 11 2017 09:19
ок, просто 3-й день на ларавеле и мало что знаю, малоо с php работал
JhaoDa
@jhaoda
Jul 11 2017 09:20
@anrus вместо tymon/jwt-auth надо ставить https://github.com/irazasyed/jwt-auth-guard, он дружелюбнее к ларавел >= 5.3
Andrew Rusev
@anrus
Jul 11 2017 09:22
спасибо всем большое, легко получить помощь
KarmaBot
@KarmaBot
Jul 11 2017 09:22
@anrus, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Andrew Rusev
@anrus
Jul 11 2017 09:22
@jhaoda спасибо....
KarmaBot
@KarmaBot
Jul 11 2017 09:22
Спасибо (+1) для @jhaoda принято! Текущая карма +1564.
JhaoDa
@jhaoda
Jul 11 2017 09:25
@anrus ну я надеюсь, что ты читал правила чата и усиленно читаешь документацию по РНР и ларавел, потому что тем, кто правила нарушает и доки не читает, здесь легко получить бан вместо помощи
А вот тем, кто правила не нарушает и доки читает, мы всегда рады
Andrew Rusev
@anrus
Jul 11 2017 09:27
@jhaoda будем стараться :) я с этим graphql пока разобрался, нужно было сразу тут спросить там оказалось все не так сложно
Andrey
@daaner
Jul 11 2017 10:28
@SerafimArts спасибо
KarmaBot
@KarmaBot
Jul 11 2017 10:29
Спасибо (+1) для @SerafimArts принято! Текущая карма +746.
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 11 2017 12:22

Здравствуйте. У меня есть список статей и связанная таблица отношением многие ко многим где содержаться голоса пользователей за ту или иную статью.

$articles = Article::with('votes')->get()->sortByDesc(function($article)
        {
            return $article->votes->count();
        });

(этим я получил сортированный список по голосам)
Вопрос в том как мне получить номер статьи.
Статья с большинством голосов занимает первое место в списке и мне надо как то получить этот номер один для нумерации.

KarmaBot
@KarmaBot
Jul 11 2017 12:22
О! @fanblacksky_twitter! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
PhpNet
@PhpNet
Jul 11 2017 12:44
@fanblacksky_twitter а зачем его вообще получать? итерируй коллекцию и выводи счетчик если тэто тупо для вью
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 11 2017 12:53
@PhpNet мне нужно для того чтобы выводить номер в рейтинге статей. Это неотъемлемая часть.
PhpNet
@PhpNet
Jul 11 2017 12:54
@fanblacksky_twitter номер - ID или просто номер по порядку в массиве? если по порядку то можно обычным форычем вывести foreach($articles as $k=>$v) {/*.... номером тут будет ($k+1) */}
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 11 2017 12:58
@PhpNet номер id.
PhpNet
@PhpNet
Jul 11 2017 13:00
@fanblacksky_twitter ну ID должен быть в $articles, не? может я конечно задачу не вкурил до конца :worried:
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 11 2017 13:03
@PhpNet тут больше проблема в том что сортировкой я получаю коллекции в порядке 0,1,7,8,6,4,2 так что в итоге я получаю номера 1,2,8,9,7,5,3,4,6 что не соответствует порядку. Номера нужно получить в @foreach($articles as $article)
vortgo
@vortgo
Jul 11 2017 13:27
Привет, ребята.
KarmaBot
@KarmaBot
Jul 11 2017 13:27
@vortgo, привет, как настроение?
vortgo
@vortgo
Jul 11 2017 13:31

Есть вопрос.
Где вы выполняете проверки бизнес логики?
Например:
Загружаем модель и в зависимости от статуса разрешаем или нет отправлять письмо, создавать запись и тд.

У меня все ифы находятся в контроллере, если все проверки прошли - запускается сервис с како-то бизнес логикой и тд.
В итоге получаю кучу однотипных проверок в контроллере. Как избавиться?

Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 13:33

Как избавиться?

@vortgo использовать сервисы +)

vortgo
@vortgo
Jul 11 2017 13:35
@SerafimArts Будут теже ифы, но в кастомном классе сервиса...
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 13:37
ага, в одном месте
vortgo
@vortgo
Jul 11 2017 13:37
Может кто пакет какой посоветует, для валидации бизнес логики приложения. Подобного ничего не нашел.
От коллег получил совет использвоать мидлверы для подобной валидации... но что-то так себе идея, есть мысли на этот счет?
JhaoDa
@jhaoda
Jul 11 2017 14:29
Пакет для валидации бизнес логики
Это прям комбо
Ваня Devium
@webdevium
Jul 11 2017 14:45
jackpot
vortgo
@vortgo
Jul 11 2017 15:19
@jhaoda Звучит наверное и правда глупо))
Я имел введу что-то типо контейнера в который складываешь обьекты-правила, в методах которого делаешь необходимую логику проверки.
$v = new ValidatorService($data);
$v->addRule(CamapaignRule::class)->addRule(SomeRule::class);

if (!$v->pass()){
   $v->getErrorMessage();
}
JhaoDa
@jhaoda
Jul 11 2017 15:20
@vortgo ну так пиши свои правила к валидатору и пользуйся
vortgo
@vortgo
Jul 11 2017 15:22
@jhaoda Интересное предложение. Подумаю в эту сторону. Спасибо.
KarmaBot
@KarmaBot
Jul 11 2017 15:22
Спасибо (+1) для @jhaoda принято! Текущая карма +1565.
vortgo
@vortgo
Jul 11 2017 15:27
@jhaoda Подскажешь как вызвать правило для всего массива данных, а не для конкретного аттрибута? В доках не нашел такого =(

Например

$this->validate($data, [
    'customRule',
    'secondCustomRule'
]);

Без этого твоя идея не сработает =(

Yaroslav
@CrazyFreeMan
Jul 11 2017 15:43
@vortgo
[ 'array.*.name' => 'required']
KarmaBot
@KarmaBot
Jul 11 2017 15:54
@CrazyFreeMan, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Zlatoslav Desyatnikov
@zlodes
Jul 11 2017 17:07
@fanblacksky_twitter $collection->values() сбросит ключи
Roman Adigezalov
@Adigezalov
Jul 11 2017 18:07
Начал разбираться со структурой laravel. Как я понял в папке app/http/controller должно быть 3 файла: Controller, HomeController и WelcomeController, но у меня там почему-то только файл Controller. Это у меня неверная структура или просто версия обновилась?
Ваня Devium
@webdevium
Jul 11 2017 18:08
Controller.php достаточно
все остальное - хлам не нужный
Roman Adigezalov
@Adigezalov
Jul 11 2017 18:08
@webdevium Спасибо. Понял
KarmaBot
@KarmaBot
Jul 11 2017 18:08
Спасибо (+1) для @webdevium принято! Текущая карма +165.
JhaoDa
@jhaoda
Jul 11 2017 18:10
@Adigezalov https://github.com/laravel/laravel/tree/master/app/Http/Controllers — покажи, где тут ДОЛЖНО быть три контроллера?
JhaoDa
@jhaoda
Jul 11 2017 18:10
@Adigezalov ну и расскажи, почему ты решил, что их ДОЛЖНО быть три?
@webdevium можно вообще на 3.0 посмотреть, чо всего 5.0-то?
Ваня Devium
@webdevium
Jul 11 2017 18:11
@jhaoda легонечко)
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 18:16

Controller.php достаточно

@webdevium он тоже не нужен =)

Ваня Devium
@webdevium
Jul 11 2017 18:16
@SerafimArts не ломай мне психику :)
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 18:19
Сейчас, кстати, словил адовую багу
Делаю инжект через Authenticatable интерфейс
а оно делает запрос вида select * from users where id = 1, причём юзера нет, т.е. гость
прикол в том, что я запилил это во вью композере, чтобы расшарить эту переменную
и оно для каждой вьюшки (там через * вью композер) начинает шарить эту переменную и делать каждый раз запрос
в результате таких запросов 14 получилось на странице входа :D
хз как так получилось, мб редиска (там у меня сессии хранятся) залочилась или ещё что...
К слову, обнаружил ещё одну фичу лары. Когда она хранит данные в редиске - она туда сериализует всё это дело. Вроде логично. Но прикол в том, что она 2 (два!!!) раза это делает. Т.е. чтобы прочитать оригинал - надо писать: unserialize(unserialize($redis->get('laravel:sessionId'))) =))))
Roman Adigezalov
@Adigezalov
Jul 11 2017 18:24
@jhaoda да блин, я с версиями ошибся... в первый раз почему-то установил 5.0.22, а там их действительно 3 было))
Ваня Devium
@webdevium
Jul 11 2017 18:25
@SerafimArts Б - безопасность. Или БРЕД. Что тебе больше нравится?
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 18:26
@webdevium ну у меня есть подозрения почему именно так
Ваня Devium
@webdevium
Jul 11 2017 18:26
@SerafimArts пачыму?
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 18:26
одна сериализация на уровне драйвера редиски, чтобы можно было складывать туда что угодно
вторая на уровне сессий, чтобы их можно было упаковать куда угодно
Ваня Devium
@webdevium
Jul 11 2017 18:27
ну читается обратно фреймворком без проблем? Значит дедушка Т знает, что кодит
не так ли?
Kirill Nesmeyanov
@SerafimArts
Jul 11 2017 18:27
ну да
Ваня Devium
@webdevium
Jul 11 2017 18:27
вот и славненько)
Mikhail Sychev
@snutworks
Jul 11 2017 18:32
Всем привет, не получается придумать как написать запрос, у меня есть посты, каждый может быть привязан к нескольким категориям, у меня есть выборка постов, как получить все категории которые есть у этих постов?
KarmaBot
@KarmaBot
Jul 11 2017 18:32
Не узнал тебя, @snutworks. Богатым будешь :)
Ваня Devium
@webdevium
Jul 11 2017 18:32
@snutworks джойном или подзапросом
че там думать то?
Mikhail Sychev
@snutworks
Jul 11 2017 18:33
не получается джойном
Ваня Devium
@webdevium
Jul 11 2017 18:33
с какого это?
Mikhail Sychev
@snutworks
Jul 11 2017 18:34
@webdevium не получается придумать джойн, у меня есть массив айдишников постов, whereIn как-то не вкручивается
и у меня еще пивот таблица
Ваня Devium
@webdevium
Jul 11 2017 18:35
$posts = Post::where('MAGIC')->get();
$categories = Category::whereHas('posts', function($q) use ($posts) { return $q->whereIn('id', $posts->pluck('id'); )});
Mikhail Sychev
@snutworks
Jul 11 2017 18:36
вот я дебил
спасибо
KarmaBot
@KarmaBot
Jul 11 2017 18:36
@snutworks, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
Mikhail Sychev
@snutworks
Jul 11 2017 18:36
@webdevium спасибо
KarmaBot
@KarmaBot
Jul 11 2017 18:36
Спасибо (+1) для @webdevium принято! Текущая карма +166.