These are chat archives for LaravelRUS/chat

21st
Jan 2017
Dmitry
@DmmitryIs
Jan 21 2017 09:10

всем привет
столкнулся с проблемой в новой версии

в контроллере

$users = User::all();

модель

public function companyName()
    {
        return 'qqq';
    }

и в шаблоне, при обращении к $user->companyName получаю NULL
если обратиться так $user->companyName(), то получаю ошибку Call to undefined method Illuminate\Database\Query\Builder::companyName()

подскажите пожалуйста что я делаю не так

KarmaBot
@KarmaBot
Jan 21 2017 09:10
О! @likeapimp! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
Ivan
@Hunternnm
Jan 21 2017 09:14
@DmitryChere всё
@DmitryChere выведи через dd($user); и посмотри что там
хотя выше и так написано - билдер. так вот, откуда в билдере у тебя такое может быть?
и что тебе вообще надо то?
Dmitry
@DmmitryIs
Jan 21 2017 09:16
@Hunternnm раньше же работало
должна вернуться строка 'qqq'
Ivan
@Hunternnm
Jan 21 2017 09:17
@DmitryChere ты с Accessor не путаешь?
может в 4,2 код выше и работал, я хз. но в 5,* не мог
Alexander
@Dualse
Jan 21 2017 09:20

@Hunternnm раньше же работало
должна вернуться строка 'qqq'

А что вдруг перестала работать?

Dmitry
@DmmitryIs
Jan 21 2017 09:23
Я имел ввиду раньше когда таким образом делал, а не в текущем проекте
Ivan
@Hunternnm
Jan 21 2017 09:26
@DmitryChere ты про Accessor'ы прочитал?
Andrei Sosnov
@atehnix
Jan 21 2017 09:46
@Hunternnm Если абстрагироваться от "правильно/не правильно"...
По ошибке то понятно, что там билдер. Но вот откуда он там? Он что-то недоговаривает)
Т.к. в $users коллекция, то цикл по ней должен давать модель, у которой вполне себе можно вызвать $user->companyName() и получить ожидаемый результат. )
@DmitryChere как у тебя $users превращается в один $user?
JhaoDa
@jhaoda
Jan 21 2017 12:16

столкнулся с проблемой в новой версии

@atehnix @Hunternnm ну вы чо, ну всё панятна жи

Новая версия, безжалостная ты сука...
@atehnix он пишет $user->companyName, а не $user->companyName()
Andrei Sosnov
@atehnix
Jan 21 2017 12:20

@jhaoda

... если обратиться так $user->companyName(), то получаю ошибку ...

..или я опять не понял)
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 12:21
в 4.2 такое работало, т.к. геттер обрабатывал метод как релейшн
и то может быть
а сейчас там проверка на инстансоф 146%
JhaoDa
@jhaoda
Jan 21 2017 12:23
Короче, ларавел говно
Дмитрий Мязин
@d4c0
Jan 21 2017 12:28
На сайт аутентификация через JWT, каким образом сделать так, чтобы брузер с каждым запросом отсылал заголовок с токеном?
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 12:28
в кукисы засунуть его? :D
Дмитрий Мязин
@d4c0
Jan 21 2017 12:33
@SerafimArts ну тут нужно будет либо js добавлять похоже, что-бы из кук строить заголовок, либо писать свою миддлварь, которая будет смотреть не на заголовок, а на куку. Думал может как то можно ещё, хз как)
Dave
@aios
Jan 21 2017 12:35
@d4c0 а суть использования токена на обычном приложении?
Дмитрий Мязин
@d4c0
Jan 21 2017 12:37
@aios веб сервер плотно связан с nodejs, и нода часто запрашивает данные о пользователе, в общем не суть, долго объяснять)
Дмитрий Мязин
@d4c0
Jan 21 2017 12:44
Я так понимаю данные о времени генерации и времени жизни токена тоже в самом токене хранятся?
Andrei Sosnov
@atehnix
Jan 21 2017 12:50
@d4c0 а что в качестве JWT используешь? tymon/jwt-auth?
Дмитрий Мязин
@d4c0
Jan 21 2017 12:50
@atehnix ага, его
JhaoDa
@jhaoda
Jan 21 2017 12:51
@d4c0 отсутствие неудобное использование гвардов, да и то только в альфе, не напрягает?
Andrei Sosnov
@atehnix
Jan 21 2017 12:51
@d4c0 ну тогда можно и из кук брать, т.к. вот
Дмитрий Мязин
@d4c0
Jan 21 2017 12:52
@jhaoda если честно, до меня до сих пор не дошло, что такое гварды... Уже даже про IoC в ларе всё понял, или почти всё, а с гвардами не догоняю.
Andrei Sosnov
@atehnix
Jan 21 2017 12:52
@d4c0 по-умолчанию парсер кук "выключен". Но можно "включить" ;)
Дмитрий Мязин
@d4c0
Jan 21 2017 12:55
@jhaoda вообще аутентификация и авторизация - больная тема, какой-то аутокретинизм :(
@atehnix в конфиге поменять нелья, неужели прямо в вендоре редактировать?
Andrei Sosnov
@atehnix
Jan 21 2017 12:59
@d4c0 зачем в вендоре? О_о
Дмитрий Мязин
@d4c0
Jan 21 2017 13:00
@atehnix или ты имеешь в виду создать свой сервис провайдер и расширить этот абстрактный?
Andrei Sosnov
@atehnix
Jan 21 2017 13:00
@d4c0 ну да.
Evgeny
@EvgenyKu
Jan 21 2017 13:07
Привет всем,подскажите.
Вот я делаю миграцию(создаётся таблица например "tasks"),после я создаю модель Task (php artisan make:model Task). И теперь при работе с Task она взаимодействует с таблицей tasks . Но как модель понимает с какой именной таблицей ей работать,ведь я явно не указывал ,что нужно работать именно c tasks ,да и именования их отличаются на одну букву. Модель ищет наиболее похожую таблицу со своим именем?
KarmaBot
@KarmaBot
Jan 21 2017 13:07
@EvgenyKu даров!
Evgeny
@EvgenyKu
Jan 21 2017 13:12
Спасибо
KarmaBot
@KarmaBot
Jan 21 2017 13:12
@EvgenyKu, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
JhaoDa
@jhaoda
Jan 21 2017 13:12
@EvgenyKu настоятельно рекомендую прочитать всю доку
Andrei Sosnov
@atehnix
Jan 21 2017 13:12
и все исходники :trollface:
Evgeny
@EvgenyKu
Jan 21 2017 13:15
@jhaoda @atehnix понял)
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 13:23
исходники пыха тоже :trollface:
Evgeny
@EvgenyKu
Jan 21 2017 13:37
@SerafimArts всё затраллили :( уйду изучать yii2
JhaoDa
@jhaoda
Jan 21 2017 13:58
@EvgenyKu «отморожу уши маме назло!»
Dmitry
@DmmitryIs
Jan 21 2017 14:07
@jhaoda я что-то сказал плохое о новой версии? ты, как обычно, смешной в кавычках
@atehnix вот я циклом как раз и прохожу, но нифига, ошибка
KarmaBot
@KarmaBot
Jan 21 2017 14:09
@likeapimp, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
JhaoDa
@jhaoda
Jan 21 2017 14:12
@DmitryChere видел, что бот рекомендует?
Dmitry
@DmmitryIs
Jan 21 2017 14:21
@atehnix этот класс убрать нужно было из контроллера use Illuminate\Foundation\Auth\User;, не обратил внимание на него сразу
Andrei Sosnov
@atehnix
Jan 21 2017 14:25
@DmitryChere Ну тогда понятно. Ну вот, я ж говорил, что должно работать.)
С другой стороны, вместо этого лучше бы юзать accessor, как уже говорили выше. Да и вообще, почему бы этому не быть полем юзера или связью.. Непонятно)
Хотя, задачи конечно разные бывают...
Evgeniy Perin
@seoperin
Jan 21 2017 14:29
приветэ
KarmaBot
@KarmaBot
Jan 21 2017 14:29
@seoperin, ну рассказывай. Как жизнь? :)
Evgeniy Perin
@seoperin
Jan 21 2017 14:29
помогите пожалуйста создать скоуп
есть такое
public function scopeToShow($query)
{
    return $query->where('is_active', 1)->whereColumn('views', '<', 'max_views')->where('end_date', '>', Date::now());
}
нужно сделать выборку баннеров, которые подходят по условиям для показа.
1 - активен, тут всё понятно
2 - где количество показов меньше максимального (если количество показов при жобавлении нового баннера не задавать, то в базе идёт null, и тогда проверка фейлится, не знаю как это пройти)
3 - где дата окончания больше текущей (дату можно не задавать при создании баннера, тогда ставится в базе 2100 год, чтобы нормально проходить по условиям)
в общем вопрос в пункте 2
Максат
@maqsat
Jan 21 2017 14:38
Всем добрый вечер! хотел юзат SleepingOwl. при добавлении Модели выходить ошибка
BindingResolutionException in Container.php line 763:
Target [SleepingOwl\Admin\Contracts\ModelConfigurationInterface] is not instantiable.
KarmaBot
@KarmaBot
Jan 21 2017 14:38
Прувет, @maqsat!
Evgeniy Perin
@seoperin
Jan 21 2017 14:39
@jhaoda привет, не знаешь как мне сделать запрос?
Dmitry
@DmmitryIs
Jan 21 2017 14:39
@atehnix это связь у меня
public function companyName()
    {
        return $this->hasOne('App\Company', 'id', 'company')->first()->name;
    }
Andrei Sosnov
@atehnix
Jan 21 2017 14:39
гы)
JhaoDa
@jhaoda
Jan 21 2017 14:39
:):):)
@DmitryChere это связь у тебя? :)
Evgeniy Perin
@seoperin
Jan 21 2017 14:40
смотрю еще на orWhereColumn но там же никак с null не сравнить кажись, там только с другой колонкой
Andrei Sosnov
@atehnix
Jan 21 2017 14:40
@DmitryChere это не связь у тебя)
Dmitry
@DmmitryIs
Jan 21 2017 14:41
@atehnix а что ты имел ввиду?
JhaoDa
@jhaoda
Jan 21 2017 14:42
@DmitryChere а ты доку почитай про связи
Andrei Sosnov
@atehnix
Jan 21 2017 14:43
@seoperin наверное, что-то типа
->where(function($query){
    $query->whereNull('max_views')->orWhereColumn('views', '<', 'max_views');
})
Dmitry
@DmmitryIs
Jan 21 2017 14:43
@jhaoda Relationships это разве не связи?
JhaoDa
@jhaoda
Jan 21 2017 14:43
@DmitryChere то, что ты написал в примере выше, это не связь. Как делать связи — написано в доке.
Dmitry
@DmmitryIs
Jan 21 2017 14:47
@jhaoda а что это тогда? я думал это связь
JhaoDa
@jhaoda
Jan 21 2017 14:47
@DmitryChere связь должна вернуть объект типа Relation. Что возвращаешь ты?
Dmitry
@DmmitryIs
Jan 21 2017 14:48
я строку возвращаю
JhaoDa
@jhaoda
Jan 21 2017 14:48
@DmitryChere ещё вопросы есть? Или дальше сам?
Dmitry
@DmmitryIs
Jan 21 2017 14:49
@jhaoda а смысл мне весь объект возвращать если мне строка с именем нужна?
JhaoDa
@jhaoda
Jan 21 2017 14:49
Ололо...
@DmitryChere короче, документацию ты читать и осмысливать не хочешь
Dmitry
@DmmitryIs
Jan 21 2017 14:49
@jhaoda да читал я
JhaoDa
@jhaoda
Jan 21 2017 14:50
@DmitryChere что ты не понял во фразе «связь должна вернуть объект типа Relation»?
Evgeniy Perin
@seoperin
Jan 21 2017 14:50
уф, сделал
Dmitry
@DmmitryIs
Jan 21 2017 14:50
@jhaoda во фразе я все понял, я не понял почему данный вариант получения имени компании плох
JhaoDa
@jhaoda
Jan 21 2017 14:51
Всё, я умываю руки. Есть желающие продолжить?
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 14:51
@DmitryChere попробуй в цикле вывести 1000 кампаний
JhaoDa
@jhaoda
Jan 21 2017 14:51
@SerafimArts псс, «компаний»
Dmitry
@DmmitryIs
Jan 21 2017 14:58
@SerafimArts каким образом ты бы вывел?
Dmitry
@DmmitryIs
Jan 21 2017 15:05

@jhaoda @SerafimArts
так лучше будет?

public function company()
    {
        return $this->belongsTo('App\Company');
    }

в шаблоне

{{ $user->company->name }}
JhaoDa
@jhaoda
Jan 21 2017 15:05
@DmitryChere именно то, что в доке пишут.
Dmitry
@DmmitryIs
Jan 21 2017 15:06
@jhaoda спасибо за наводку, не ту связь получается юзал
KarmaBot
@KarmaBot
Jan 21 2017 15:06
Спасибо (+1) для @jhaoda принято! Текущая карма +1420.
Andrei Sosnov
@atehnix
Jan 21 2017 15:06
@DmitryChere :+1:
Dmitry
@DmmitryIs
Jan 21 2017 15:06
@atehnix тебе тоже спасибо за консультации)
Roman Fandeev
@mrFANRA
Jan 21 2017 15:19

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

// метод модели
function addValue($value)
{
    $this->value    +=    $value;
    return $this;
}

// контроллер
$models    =    Model::all();
foreach($models as $model){
    $model->addValue(100)
        ->save();
}

Вроде логичнее что сохрнять нужно внутри метода, так как можно забыть вызвать save в коде где то.
Но с другой стороны, таких методов может быть много и каждый дергает базу на update.

Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 15:32
@jhaoda я хз что там у него, мож друзья
JhaoDa
@jhaoda
Jan 21 2017 15:33
@SerafimArts а?
Andrei Sosnov
@atehnix
Jan 21 2017 15:35
@SerafimArts так все равно "о" ;)
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 15:36
а вдруг там предприятие?!
ну не может же быть, что там игрушка с набором миссий
Andrei Sosnov
@atehnix
Jan 21 2017 15:37
@SerafimArts бинго!
только все наоборот)
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 15:38
нет, как же так?!
я не верю!
OsipovMN
@projct1
Jan 21 2017 16:41
подскажите плиз как быть
начинаю работать с очередями в ларе, нужно же крон настроить для этого?
или можно как-нибудь запустить воркер, чтобы он постоянно работал
JhaoDa
@jhaoda
Jan 21 2017 16:48
@rorc доку почитай
OsipovMN
@projct1
Jan 21 2017 16:51
@jhaoda если не пользоваться Supervisor
JhaoDa
@jhaoda
Jan 21 2017 16:51
@rorc религия запрещает?
OsipovMN
@projct1
Jan 21 2017 16:52
@jhaoda ну я сторонним хостингом пользуюсь, без VPS, а у них нету этой утилиты
Alexandr Chernyaev
@tabuna
Jan 21 2017 16:57
@rorc На хостинге нет крона?
OsipovMN
@projct1
Jan 21 2017 16:57
@tabuna есть) утилиты Supervisor нету
Alexander
@Dualse
Jan 21 2017 16:58
@rorc А нафиг вообще хостинг, недорогой vps стоит 100 рублей / месяц. Разве это дорого для бизнеса?
OsipovMN
@projct1
Jan 21 2017 16:58
@tabuna вот я и думаю, что придётся кро настраивать свой с обработчиком, который будет раз в 10 сек хотя бы проверять очереди
@Dualse ну там чтобы на него перейти я думаю геморно, времени нет на это)
@Dualse к тому же сам не настраивал ни разу, так что ещё разбираться надо будет время тратить
Alexander
@Dualse
Jan 21 2017 17:00
@rorc Что именно геморрой? Обычно даже есть типа автоустановщик, который тебе ОС и ISPManager установит
KarmaBot
@KarmaBot
Jan 21 2017 17:00
@tabuna, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Alexander
@Dualse
Jan 21 2017 17:00
@tabuna лучше заверни
JhaoDa
@jhaoda
Jan 21 2017 17:01
@rorc к ларавел твой вопрос отношения не имеет, в общем-то
Alexander
@Dualse
Jan 21 2017 17:02

@tabuna Пожалуйста

@tabuna лучше заверни

OsipovMN
@projct1
Jan 21 2017 17:04
@tabuna это типа консольную команду надо создать и кроном запускать её?
@Dualse да вот думаю, давно надо бы перейти, спс
KarmaBot
@KarmaBot
Jan 21 2017 17:04
Спасибо (+1) для @Dualse принято! Текущая карма +123.
Alexander
@Dualse
Jan 21 2017 17:04
@tabuna Спасибо за понимание
KarmaBot
@KarmaBot
Jan 21 2017 17:04
Спасибо (+1) для @tabuna принято! Текущая карма +2.
Дмитрий Мязин
@d4c0
Jan 21 2017 17:05
какой же этот tymon jwt-auth кривой..
OsipovMN
@projct1
Jan 21 2017 17:06
@Dualse кстати не подскажешь VPS хостинг, заточенный под ларку и оптимально сконфигурирован уже?
Alexander
@Dualse
Jan 21 2017 17:07
@rorc Заточенный не знаю. У нас в фирме используется https://www.ihor.ru/
Alexandr Chernyaev
@tabuna
Jan 21 2017 17:09
@rorc За точенный есть - https://forge.laravel.com/
OsipovMN
@projct1
Jan 21 2017 17:10
@tabuna 1000к в месяц))
JhaoDa
@jhaoda
Jan 21 2017 17:10
@tabuna бота не надо игнорировать
Дмитрий Мязин
@d4c0
Jan 21 2017 17:12
@atehnix либо я что-то делаю не так, либо ещё что-то, но там не реально просто взять и расширить абстрактный класс. Хотел через метод boot() в AppServiceProvider обратиться к сервис контейнеру и впилить туда таки класс для парсинга кук, фиг, там свойство $chain - приватное! Т.е. этот класс и расширять бесполезно. Думал создать свою миддлварь, там тоже куча проблем. Такое чувство что в версии 1.0.0-beta.1 Tymon что-то хотел реализовать, начал, и по какой то причине до конца не закончил.
Alexandr Chernyaev
@tabuna
Jan 21 2017 17:12
@rorc Из популярных
https://www.digitalocean.com/
https://vscale.io/ru/ - Его русский аналог от компании селектел
OsipovMN
@projct1
Jan 21 2017 17:14
@tabuna ок, спс, поизучаю
@tabuna спс
KarmaBot
@KarmaBot
Jan 21 2017 17:14
Спасибо (+1) для @tabuna принято! Текущая карма +3.
Andrei Sosnov
@atehnix
Jan 21 2017 17:16
@d4c0 чет я не понимаю проблемы..
Копируешь себе в app/Providers/, подключаешь в конфиге вместо ихнего. Переопределяешь что хочешь и живешь счастливо. ;)
Дмитрий Мязин
@d4c0
Jan 21 2017 17:19
@atehnix блин, а ведь это гениально! Просто я не рассматривал таких, можно сказать, варварских методов) Подразумевая, что публичный пакет должен как минимум легко настраиваться и расширяться... А то что это получается, человек написал код, да так что его приходится тупо копировать...
JhaoDa
@jhaoda
Jan 21 2017 17:19
@d4c0 это бета, что ты хочешь, я не понимаю?
Ставь стабильную версию, какие проблемы?
Дмитрий Мязин
@d4c0
Jan 21 2017 17:21
@jhaoda в стабильной нет даже намёков на разнообразие парсеров, только заголовки парсит. Кстати, проект вообще жив?
JhaoDa
@jhaoda
Jan 21 2017 17:21
@d4c0 беда...
Но я так полагаю, что Шон никому ничего не должен
Не устраивает, как работает пакет — форкаем или ищем другой
Дмитрий Мязин
@d4c0
Jan 21 2017 17:23
@jhaoda можно конечно и так рассуждать, но думаю ты меня понял.
JhaoDa
@jhaoda
Jan 21 2017 17:23
@d4c0 нет, не понял. И я рассуждаю именно так и никак иначе. А на всех, кто рассуждает не так, я смотрю с подзрением.
И на тех, кто спрашивает «Кстати, проект вообще жив?», даже не потрудившись посмотреть на историю коммитов, я тоже смотрю с подозрением
Дмитрий Мязин
@d4c0
Jan 21 2017 17:25

@jhaoda нет, ну это хорошо что ты такой максимально конструктивный. Сначала перепробуешь все варианты, прежде чем спросить или упрекнуть, тут только плюс.

Если бы все были такими, наверное и чата бы не было, и вопросы на форумах не повторялись, ни одного во всём интернете. И они были бы только максимально по делу, с максимальным пониманием.

JhaoDa
@jhaoda
Jan 21 2017 17:31
@d4c0 проблема в том, что ты сразу начал говорить, что пакет фигня, не поддерживается, то-сё
Это называется «неконструктивный подход»
Дмитрий Мязин
@d4c0
Jan 21 2017 17:33

@jhaoda согласен, я ведь и не спорю. У всех разный темперамент, разный ритм, разная скорость мышления. Мне порой очень сложно сохранять внимание, и долгое время мыслить сосредоточено и конструктивно. Вечно отвлекаюсь, делаю поспешные выводы. Ну это так, о личных качествах.

А читая твои сообщения, и проецируя на себя тот образ который ты создаёшь тут (минимальные выводы из общения), мне кажется я бы взорвался от спокойствия и сосредоточенности, и от постоянного конструктива, что конечно-же, не в плюс мне.

JhaoDa
@jhaoda
Jan 21 2017 17:36
@d4c0 а надо стараться. Всякий неконструктив повышает энтропию, что лишь приближает тепловую смерть Вселенной
Дмитрий Мязин
@d4c0
Jan 21 2017 17:38
@jhaoda видимо ты гораздо старше меня) Как говориться, "успокоился")
OsipovMN
@projct1
Jan 21 2017 18:06
А можно ли изменять очереди?
не нахожу тут чёт ( https://laravel.com/docs/5.3/queues
например я создал очередь уведомления через час, и потом мне надо изменить на 45 минут
Ваня Devium
@webdevium
Jan 21 2017 18:24
@rorc просканировать очередь, изменить, записать обратно. Профит.
чаще всего просто удаляют все из очереди и заново пишут
OsipovMN
@projct1
Jan 21 2017 18:26
@webdevium ну допустим оператор создал себе напоминание, перезвонить клиенту через полчаса и кучу текста с ньюансами
потом надо поменять время напоминания, заного создавать не варик
JhaoDa
@jhaoda
Jan 21 2017 18:29
Как мне помнится, явно удалять задание из очереди до срабатывания можно только в beanstalk и, возможно, database
OsipovMN
@projct1
Jan 21 2017 18:29
@webdevium не существует модели очереди?
чтобы можно было сделать нечто вроде этого:
$Q = Queue::find(1);
$Q->delay->addMinutes(15);
$Q->save()
JhaoDa
@jhaoda
Jan 21 2017 18:30
@rorc очень интересно посмотреть на модель очереди для редиса
OsipovMN
@projct1
Jan 21 2017 18:32
@jhaoda значит нельзя менять существующую очередь?
JhaoDa
@jhaoda
Jan 21 2017 18:33
@rorc через механизм очередей — нет, не знаю такого.
OsipovMN
@projct1
Jan 21 2017 18:33
:(
JhaoDa
@jhaoda
Jan 21 2017 18:34
Но можно через конкретный драйвер это делать, правда, это уже низкий уровень и явная зависимость от драйвера.
Ваня Devium
@webdevium
Jan 21 2017 18:40
Мне кажется, тут кроется проблема в архитектурном решении. Тебе не очередь надо, а scheduler. Они не совсем через очереди делаются, сорян)))
OsipovMN
@projct1
Jan 21 2017 18:44
@jhaoda вот таким кастылеком можно хотя обновить дату) \DB::table('jobs')->update(['available_at' => (new DateTime($newDateTime))->getTimestamp());
asvae
@asvae
Jan 21 2017 18:44
@rorc не проще кроном раз в минуту пробегаться?
OsipovMN
@projct1
Jan 21 2017 18:44
@webdevium ну не совсем задачник, простые напоминания
JhaoDa
@jhaoda
Jan 21 2017 18:45
@rorc я же сразу сказал, что можно работать через конкретный драйвер и чем это чревато
OsipovMN
@projct1
Jan 21 2017 18:45
@asvae ну хочется полностью пользоваться ларой)
asvae
@asvae
Jan 21 2017 18:45
@rorc в ларе есть крон.
OsipovMN
@projct1
Jan 21 2017 18:46
@asvae ты про это? https://laravel.com/docs/5.3/scheduling
asvae
@asvae
Jan 21 2017 18:47
@rorc Да. Мало того, там прям в мануале пример про напоминалки: $schedule->command('reminders:send').
OsipovMN
@projct1
Jan 21 2017 18:47
@webdevium кстати да, очереди для другого, чтобы нагрузку снизить как бы, для тяжёлых задач, когда ещё их много и постоянно поступают
@webdevium спс за идею
KarmaBot
@KarmaBot
Jan 21 2017 18:47
Спасибо (+1) для @webdevium принято! Текущая карма +96.
OsipovMN
@projct1
Jan 21 2017 18:48
@asvae точняк, спс за открытие глаз )
@asvae спс
KarmaBot
@KarmaBot
Jan 21 2017 18:48
Спасибо (+1) для @Asvae принято! Текущая карма +46.
OsipovMN
@projct1
Jan 21 2017 18:48
буду рыть в другом месте
Artemy
@lartie
Jan 21 2017 19:15

Привет всем.

Почему данный кусок кода внутри blade шаблона выполняется с ошибкой Undefined offset: 0

{{ $user->roles[0]->display_name }}

Но точно такой же вызов внутри контроллера не приводит к ошибке.

KarmaBot
@KarmaBot
Jan 21 2017 19:15
@artemiydeveloper, и тебе привет ;)
JhaoDa
@jhaoda
Jan 21 2017 19:16
@lartie ну так ты сделай в шаблоне dd($user->roles) и будешь знать
Artemy
@lartie
Jan 21 2017 19:16
@jhaoda там всё есть
JhaoDa
@jhaoda
Jan 21 2017 19:17
@lartie ну если бы было, то работало бы
Artemy
@lartie
Jan 21 2017 19:18
@jhaoda
http://imglink.ru/pictures/21-01-17/924102857ffe41704b0b064bd4d0a19a.jpg
JhaoDa
@jhaoda
Jan 21 2017 19:19
@lartie картинку заверни
Artemy
@lartie
Jan 21 2017 19:19
@jhaoda не понял, куда завернуть? Она ведь отображается
JhaoDa
@jhaoda
Jan 21 2017 19:20
@lartie в правилах чата написано, что картинки надо заворачивать в код
@lartie пробовал не как к массиву обращаться за первым элементом?
Artemy
@lartie
Jan 21 2017 19:23

@jhaoda да, пробовал как к коллекции, но тоже странно ведет себя.

$user->roles->first()->display_name

Выдаёт ошибку
Trying to get property of non-object

JhaoDa
@jhaoda
Jan 21 2017 19:24
@lartie ну значит фигня у тебя там, а не коллекция. Скрин, кстати, обрезанный в начале
Artemy
@lartie
Jan 21 2017 19:26

@jhaoda и правда, на одном юзере вот такая хрень
Illuminate\View\Engines\PhpEngine

Спасибо

KarmaBot
@KarmaBot
Jan 21 2017 19:26
Спасибо (+1) для @jhaoda принято! Текущая карма +1421.
Maxim Bibikov
@vadag
Jan 21 2017 21:42
Всем привет! Недавно присоединился, пролистал сообщения. И у меня родился концептуальный вопрос: а зачем в jwt-auth (последний commit 3 дня назад) парсить куки? В jwt? куки? Мне просто в самом деле интересно
KarmaBot
@KarmaBot
Jan 21 2017 21:42
@vadag даров!
Maxim Bibikov
@vadag
Jan 21 2017 21:46
Хотя в общем-то понял. Снимается
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 21:56
@vadag мб для того, чтобы не только rest фигачить?
Maxim Bibikov
@vadag
Jan 21 2017 22:00
@SerafimArts Ну да. Правда зачем в этом случае вообще jwt? У меня прекрасно в свое время уживался jwt для доступа с мобильных и сессии для работы через браузер
А унификация аутентификации может поломать целостность концепций. Поэтому и вопрос "концептуальный" :)
Посмотрел исходники, 3 месяца назад Шон добавил таки cookie-parser
Maxim Bibikov
@vadag
Jan 21 2017 22:09
И у tymon.jwt.parse есть публичные методы ->getChain и ->setChain
Мне совсем скоро опять придется с подобными вопросами работать, вот и проявляю нездоровый интерес. Сорри за флуд
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 22:10
@vadag ну jwt позволяет не хранить доп. данных на постоянку
хотя бы этот факт уже добавляет к карме jwt
для примера - время аутентификации, айпишник и прочие штуки, которые можно привязать хардкорно к текущей сессии
и если кто-то стырит кукис (ну а вдруг, идиотов много), он был бы не рабочим на другом компе для другого айпишника
хотя привязывать к айпишнику и немного диковато...
Maxim Bibikov
@vadag
Jan 21 2017 22:13
@SerafimArts jwt в моем понимании просто "транспорт". Именно в нем хранить вообще можно что угодно (хоть и заточен он для аутентификации). А как этот "транспорт" (неудачную подобрал аналогию) передавать от клиента на сервер и обратно, и как его хранить на клиенте - второй вопрос.
В идеале, как я это вижу, передаем в заголовках, на клиенте храним в local/session storage
(если клиенты web-based)
Насколько я помню, чтобы стырить было сложнее, рекомендуют jwt только с https использовать.
Насчет защиты на конечных устройствах рекомендаций не поступало :)
Maxim Bibikov
@vadag
Jan 21 2017 22:19
Хотя вру, поступало. Ассиметричное шифрование. В доках jwt-auth пока нет, но в конфиге уже прописано. Исходники пока не смотрел. Надо почитать про это
Хотя если мы всем раздаем одинаковые публичные ключи..
В общем, это интересный вопрос.
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 22:22
а что ассиметричное шифрование? жвт так и работает
ну на симфони по крайней мере =)
сертификатом подписываешь и в путь
ну и плюс доп публичный ключик
Maxim Bibikov
@vadag
Jan 21 2017 22:23
@SerafimArts jwt по-умолчанию подписывает все "паролем"
...jwt-auth. Когда в с ним дело имел (почти год назад), вроде даже упоминания про ассиметричные алгоритмы.
Хотя может сам виноват и плохо материал изучил.
На сифмони через LexikJWTAuthenticationBundle?
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 22:28
не, какой-то другой
не помню, на работе надо смотреть =)
Maxim Bibikov
@vadag
Jan 21 2017 22:34
Да и у этого в доках сразу про генерацию ключей. В прошлом апреле это было экзотикой, по крайней мере для меня.
Ха, посмотрел историю одной библиотеки (используется как у Шона, так и в бандле, который выше), так они RSA 20 апреля 2015 добавили. :)
хм... хотя даже раньше, это они второй движок прикрутили. Короче, буду изучать, если что новое узнаю - обещаю делиться.
@SerafimArts Спасибо за диалог!
KarmaBot
@KarmaBot
Jan 21 2017 22:37
Спасибо (+1) для @SerafimArts принято! Текущая карма +673.
Kirill Nesmeyanov
@SerafimArts
Jan 21 2017 23:22
@vadag и тебе спасибо =)
KarmaBot
@KarmaBot
Jan 21 2017 23:22
Спасибо (+1) для @vadag принято! Текущая карма +1.