Wolf
Или все же лучше соблюдать золотую середину? Увы, не могу, продукт защищен договором. Могут и посадить)))
Pin
ну тогда весьма абстрактный разговор получится
Pin
нужно прикладно смотреть
Pin
модель - про данные
Wolf
Ну вот у тебя есть правила, что куда ты пишешь?)
Pin
ну у меня зачастую - нет раздутых контроллеров
Pin
потому что для запросов - есть scopы
Pin
для преобработки данных - есть аксессоры
Pin
есть паттерн - репозиторий
Pin
который отлично применим в ларе
Wolf
Что посоветуешь почитать об этом паттерне?
Ivan
Любая офф инфа
Ivan
Репозиторий - это интерфейс и игры с DI
Ivan
Крутая штука
Pin
можешь на примере посмотреть
Pin
секунду
Ivan
https://github.com/SerafimArts/SerafimArts
Ivan
Советую к просмотру
Ivan
Не только репозиторий заюзан
Pin
https://github.com/InfyOmLabs/laravel-generator\
Pin
https://github.com/InfyOmLabs/laravel-generator
Wolf
Спасибо парни. Буду изучать вопрос.
Pin
https://github.com/InfyOmLabs/laravel-generator/blob/develop/src/Common/BaseRepository.php
Pin
вот конкретно даже..
Wolf
Интересно)
Vladimir
Anonymous
Ребят, приветствую! Изучаю фреймворк, потребовалось написать собственный драйвер для обработки сессий. Сказано - сделано, запилил по оф. документации. Проблема в том, что при отправке какой-либо формы он "высыпает": "TokenMismatchException in VerifyCsrfToken.php line 77". Сможет кто-нибудь подсказать? Гугл ответов не выдал. Спасибо
Pin
ну csrf токен отсутствует
Pin
у лары csrf верификация форм
Pin
https://laravel.com/docs/5.3/csrf
Pin
вот тут почитай
Pin
и ещё, как ты не можешь нагуглить, если первая ссылка в гугле
Pin
http://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken
Pin
там решение твоей проблемы
Pin
если не нужна csrf верификация, можешь в Kernel отключить
Anonymous
Спасибо за быстрый ответ. Этот тред видел.
Если я устанавливаю драйвер сессий на один из существующих - всё ок. Если же устанавливаю свой - ошибка. Видимо нужно что-то ещё указать
Anonymous
интерфейс SessionHandlerInterface реализовываю, есс-но
Pin
дебажить надо
Pin
если ты кастомный драйвер для работы с сессиями написал
Pin
скорее всего туда csrf токен не складывается
Pin
провались с дебагером в своей класс, тебе нужно понять почему csrf'ы не бьются
Pin
скорее всего из твоего хранилища он не возвращается
Pin
даже сделай проще
Pin
Session::token()
Pin
посмотри
Anonymous
В доке ничего не говорится про отлов токенов в драйвере (https://laravel.com/docs/5.3/session#adding-custom-session-drivers). В уже существующем (DatabaseSessionHandler) тоже пусто. Сейчас посмотрю)
Pin
ну ты его проверял?
Pin
у тебя геттер коректно отрабатывает?
Pin
и сеттер
Anonymous
Session::token корректно отрабатывает. На каждый запрос новое значение
Pin
ну надо подебажить код, тебе надо проверить почему проверка csrf токена не проходит
Pin
там разные значения скорее всего
Pin
с xdebug провались и глянь почему он валится и сразу всё понятно станет
Anonymous
с геттером \ сеттером Session тоже всё ок
Pin
короче смотри
Pin
session token и form token сравни
Anonymous
сравнил, в форму попадает актуальный токен
Pin
csrf_token() который ты в форме подсовываешь в hidden поле
Anonymous
сейчас добегу до методов сравнения
Pin
одинаковые?
Pin
в сессии и форме?
Anonymous
да
Pin
гм.
Anonymous
может он где-то по пути изменяется
Pin
нет
Pin
трейс скинь
Pin
ошибок
Anonymous
при работе с одним из стандартных драйверов - всё ок. При работе с кастомным что-то идёт не так и ->tokensMatch не проходит. Из-за этого и сыпется ошибка. В ней $session_token не идентичен $token ($request->input). Странно
Pin
вот
Pin
я и говорю, что отличаются
Pin
точки остановы поставь
Anonymous
при генерации формы я посмотрел токен сессии и получившийся токен формы - одно и тоже
Anonymous
при доходе до метода проверки - уже разные)
Pin
ну судя по всему
Pin
трабла в твоем классе
Pin
если со стандартным работает
Pin
посмотри как в твоем драйвере мутирует токен
Pin
Iterator и Countable тоже имплементировал?
Pin
class Session implements SessionInterface, \IteratorAggregate, \Countable
{
Anonymous
да, сейчас буду копаться