These are chat archives for LaravelRUS/chat

18th
Jul 2017
Alexander
@Dualse
Jul 18 2017 00:44

Нужно взять уже готовый скрипт на Laravel, такие есть на просторах интернета и настроить под мой сайт.

К-классика

Dave
@aios
Jul 18 2017 01:43
@Dualse Г - Говномесы
Coryphaeus
@cvdeveloper13
Jul 18 2017 05:10
Что за П - прикол пошел по чату?)
Dave
@aios
Jul 18 2017 05:23
Да какой то М - мужик ( с двумя ошибками в слове мудак ) - решил Г - Говнокодить на ларе
Ваня Devium
@webdevium
Jul 18 2017 05:57
З - забвение
Юрий
@sawerus
Jul 18 2017 05:59
O - offtop! G - go! ))
Alex
@ZAZmaster
Jul 18 2017 06:59
Доброго дня всем. Есть вопрос, как правильнее построить логику. Нужно связать модель Результатов с Компанией и Городом причём результаты должны быть доступны как из модели Компании (все последние добавленые результаты по все городам) так и из модели Города (последний добавленый результат по городу). Пока Г-наговнокодил только так :) но сомнения гложат, что это правильный путь. Также хотелось бы иметь связь Компании-Города.
https://paste.laravel.io/wewQB
KarmaBot
@KarmaBot
Jul 18 2017 06:59
@ZAZmaster, ну рассказывай. Как жизнь? :)
@ZAZmaster, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Alex
@ZAZmaster
Jul 18 2017 06:59
про bin учту
fakefakefake12
@fakefakefake12
Jul 18 2017 07:06
@ZAZmaster так ты заверни, через редактирование (троеточие у сообщения). Ну и так к сомнению: у тебя "город - округ" через связь многие ко многим, это логично для тебя?
Alex
@ZAZmaster
Jul 18 2017 07:10
@fakefakefake12 ага, забыл что тут можно редактировать сообщения. А почему не логично должно быть? Округа свои, у каждой компании они в своём количестве и под своими названиями, а города тут уже стандартный для всех набор
PhpNet
@PhpNet
Jul 18 2017 07:10
Сначала нужно понять что такое округ :) Если это административная единица типа района, то там имхо 1 к 1. Может имеется в виду что один округ может охватить несколько городов.
Alex
@ZAZmaster
Jul 18 2017 07:11
@PhpNet не, округ это чтото типа подразделения или отдела, к административной единице нет отношения никакого :)
fakefakefake12
@fakefakefake12
Jul 18 2017 07:11
Так это отдел... ты уж не путай тогда :)
PhpNet
@PhpNet
Jul 18 2017 07:11
@ZAZmaster тогда может его как то адекватно назвать, типа department?
а то сбивает напрочь
еще и транслит в названиях функций, меня за такое по рукам били в свое время )
Alex
@ZAZmaster
Jul 18 2017 07:13
@fakefakefake12 в терминологии проекта это округ :) но да, нада было переименовать чтоб с толку не сбивать )))
@PhpNet названия это пример, в самом проекте ессесно всё православно )
Ваня Devium
@webdevium
Jul 18 2017 07:14
в любом случае, там нет сложных связей. Там просто - обратимая связь.
Ваня Devium
@webdevium
Jul 18 2017 07:17
@ZAZmaster еще: так плохо писать
'App\Department'
надо App\Department::class
PhpNet
@PhpNet
Jul 18 2017 07:18
@webdevium зато отработает быстрее :) а вообще да, хотя бы из за автокомплита
Alex
@ZAZmaster
Jul 18 2017 07:18
@webdevium учту )
fakefakefake12
@fakefakefake12
Jul 18 2017 07:19
Даже просто Department::class. Но вообще, почему результат относится к компании, а не к отделу
Alex
@ZAZmaster
Jul 18 2017 07:19
Вот мне нужно что-то такое получить:
$сompany = Company::find(1);
foreach( $сompany->departments as $department ) {
    foreach($department->cities as $city) {
        dd($city->results);
    }
}
Ваня Devium
@webdevium
Jul 18 2017 07:20
@ZAZmaster
Company::find(1)->with(['departments.cities']);
Юрий
@sawerus
Jul 18 2017 07:20
волшебная лесенка...
Alex
@ZAZmaster
Jul 18 2017 07:20
Воообще результат по идее должен относиться к городе, но компаний много и у каждой свои отделы а города у всех одинаковые
@webdevium и где тут результат по каждому городу?)
Ваня Devium
@webdevium
Jul 18 2017 07:23
@ZAZmaster with(['departments.cities.results'])
прикинь :)
Alex
@ZAZmaster
Jul 18 2017 07:23
но связи города и результата у меня нет )))
результат и город связана, а обратную как правильно описать в модели?
Ваня Devium
@webdevium
Jul 18 2017 07:24
hasmany ==> belongsto
hasone ==> belongto
PhpNet
@PhpNet
Jul 18 2017 07:24
А был бы jhaoda, уже б в мануал отправил ))
Ваня Devium
@webdevium
Jul 18 2017 07:26
@PhpNet меня попросили быть добрым
PhpNet
@PhpNet
Jul 18 2017 07:26
:laughing:
Alex
@ZAZmaster
Jul 18 2017 07:26
@webdevium блин, нельзя брать отпуск на 2 месяца.... плохо сказыватеся на мозге и на печени ))))
Ваня Devium
@webdevium
Jul 18 2017 07:27
@ZAZmaster печень и мозг в разных частях тела находятся
Alex
@ZAZmaster
Jul 18 2017 07:27
по убиваются одним веществом )
Ваня Devium
@webdevium
Jul 18 2017 07:28
@ZAZmaster хороший разрабочтик талант не пропьет, даже если будет пить ракетное топливо клизмой
Alex
@ZAZmaster
Jul 18 2017 07:29
@webdevium а я и не говорил что я хороший разработчик ;) я только учусь :)
fakefakefake12
@fakefakefake12
Jul 18 2017 07:33
Alex
@ZAZmaster
Jul 18 2017 07:35
@webdevium не работает "твой способ", получаю при Company::find(1)->with(['departments.cities.results']) список всех результатов по городу а мне нужно только результаты для конкретной компании в этом городе :)
Ваня Devium
@webdevium
Jul 18 2017 07:42
@ZAZmaster значит у тебя все таки сложная связь
базу в студию
vava
@vaz9
Jul 18 2017 08:46
Приветики, подскажите норм материал про laravelcollective/html для работы с формами (для фронта). Т.е. более разжеванный пример, чем https://laravelcollective.com/docs/5.1/html
KarmaBot
@KarmaBot
Jul 18 2017 08:46
@vaz9 даров!
Ваня Devium
@webdevium
Jul 18 2017 08:50
@vaz9 да вот как бы их дока - прекрасная
остальное подсматривай в автокомплите или исходниках
Ваня Devium
@webdevium
Jul 18 2017 09:09
@ZAZmaster в твоем случае намного проще вытащить результаты, зная компанию и город
Alex
@ZAZmaster
Jul 18 2017 09:10
@webdevium изначально я знаю компанию, мне нужно построить таблицу в которой будут идти заголовками департаменты со сводной суммой данных и под каждым департаментом развёрнуто по городам где какие данные
плюс сводные данные по всей компании
Ваня Devium
@webdevium
Jul 18 2017 09:12
судя по твоей структуре
ты тащишь моих вариантом все, кроме results
results отдельным запросом с двойным сравнением
Alex
@ZAZmaster
Jul 18 2017 09:13
Вот а от этого хотелось бы избавиться, поэтому сюда и обратился :)
Ваня Devium
@webdevium
Jul 18 2017 09:13
я не до конца понимаю, что у тебя творится в базе
Alex
@ZAZmaster
Jul 18 2017 09:14
кривым кодом то я могу результаты извлечь, но хотелось бы ларавеловским тру вейем)
Alex
@ZAZmaster
Jul 18 2017 09:21

@webdevium то есть как-то так:

$сompany = Company::find(1)->with(['departments.cities']);
foreach( $сompany->departments as $department ) {
    foreach($department->cities as $city) {
        dd($city->results->where('company_id', $сompany->id)->sortBy('updated_ad')->last());
    }
}

но имхо это не тру вей...

Ваня Devium
@webdevium
Jul 18 2017 09:23

@ZAZmaster потому что

foreach($department->cities as $city) {
    dd($city->results->where('company_id', $сompany->id)->sortBy('updated_ad')->last());
}

плохо

@ZAZmaster здесь два запроса рулят
Alex
@ZAZmaster
Jul 18 2017 09:28
какие два запроса? )
Ваня Devium
@webdevium
Jul 18 2017 09:28
@ZAZmaster
  • одна пачка тащит компанию с департаментами с городами
  • вторая - результаты по городам и компании
Vladimir Kikot
@shoxy
Jul 18 2017 09:31
@webdevium так там же даже не запросы, а методы коллекции отрабатывают, не?
Alex
@ZAZmaster
Jul 18 2017 09:32
имхо да
@shoxy но всё равно не красиво выходит
vava
@vaz9
Jul 18 2017 09:37
подскажите как в форме ларавеля следить за введеными полями, типа мы вернулись к форме и подставить значения пользователя, можно? спасибо
KarmaBot
@KarmaBot
Jul 18 2017 09:37
@vaz9, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
vava
@vaz9
Jul 18 2017 09:37
@webdevium да да, по доке все и сделал.
Vladimir Kikot
@shoxy
Jul 18 2017 09:38
@vaz9 а что значит "вернулись к форме"? после валидации?
Ваня Devium
@webdevium
Jul 18 2017 09:45
@shoxy НЕТ
@vaz9 old(), как выше подсказали
Ivan Monastysky
@mes01
Jul 18 2017 09:56

$res = DB::connection('comet') ->insert('insert into users_messages (id, event, message) values (?, ?, ?)', [1, 'custom_event', 'message']);

почему в ходе выполнения возникает такая ошибка? SQLSTATE[HY000]: General error: 3 Syntax error in query

JhaoDa
@jhaoda
Jul 18 2017 09:57
@mes01 а ты посмотри, какой запрос в итоге получается
Coryphaeus
@cvdeveloper13
Jul 18 2017 09:57
инсерт инсерт)
Ivan Monastysky
@mes01
Jul 18 2017 09:58
@cvdeveloper13 это пример из офф документации DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
JhaoDa
@jhaoda
Jul 18 2017 09:58
@cvdeveloper13 вот он так и не узнает, что код можно отлаживать как-то иначе, нежели вопросами в чате
Ivan Monastysky
@mes01
Jul 18 2017 09:58
как это сделать?
Coryphaeus
@cvdeveloper13
Jul 18 2017 09:59
@jhaoda Может и узнает, если заденет очевидность проблемы)
JhaoDa
@jhaoda
Jul 18 2017 10:00
@mes01 поставь дебагбар и посмотри, какой запрос получается
vava
@vaz9
Jul 18 2017 10:23
@MetaDone @shoxy оки
Sergey Batmanov
@sergeybatmanov
Jul 18 2017 10:24
@pinguinjkeke Спасибо
KarmaBot
@KarmaBot
Jul 18 2017 10:24
Спасибо (+1) для @pinguinjkeke принято! Текущая карма +21.
Sergey Batmanov
@sergeybatmanov
Jul 18 2017 10:32

Ребят, можно как то сделать, чтобы на унаследованной модели срабатывал код для события saving родительской?
напр., в провайдере:

User::saving(function ($model) {
            // code
        });

а при сохранении унаследованной модели: class AnotherUser extends User происходило бы тоже самое?

Sergey Batmanov
@sergeybatmanov
Jul 18 2017 10:38
@PhpNet я видел, ты хороший человек. Помоги мне)
PhpNet
@PhpNet
Jul 18 2017 10:38
@sergeybatmanov по зф могу, по вротпрессу неее
Sergey Batmanov
@sergeybatmanov
Jul 18 2017 10:39
@PhpNet зф?
PhpNet
@PhpNet
Jul 18 2017 10:39
@sergeybatmanov zend, ща активно учу лару...
Andrey
@daaner
Jul 18 2017 10:39
зенд фрейморк... не?
Sergey Batmanov
@sergeybatmanov
Jul 18 2017 10:40
@PhpNet так это по ларе вопрос)
PhpNet
@PhpNet
Jul 18 2017 10:40
@sergeybatmanov а, про обсерверы унаследованных моделей? насколько помню,елка так не умеет
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 10:40
@sergeybatmanov дёрнуть явно эвент
все эти saving и прочие эвенты дёргают общую шину эвентов
ака диспатчера
app(Dispatcher::class)->listen('*', function (string $event, array $args) { dd($event, $args); }) поможет тебе понять как они называются
=)
Coryphaeus
@cvdeveloper13
Jul 18 2017 10:43
А почему не вынести все в класс обсервер, а затем привязать один и тот же обсервер к новой модели?
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 10:44
потому что так будет лучше =)))
но вопрос же не как будет лучше сделать, а просто как сделать
:D
Sergey Batmanov
@sergeybatmanov
Jul 18 2017 10:46
@cvdeveloper13 я так и делаю, но получается каждой следующей модели нужно указывать обсервер. Но как сделать так, чтобы больше не указывать?)
Точнее возможно ли это
Andrey
@daaner
Jul 18 2017 10:47
трейт
prog-man
@prog-man
Jul 18 2017 11:24

Всем привет.

А где еще есть чат Laravel, кроме gitter?

KarmaBot
@KarmaBot
Jul 18 2017 11:24
Приветствую тебя, @prog-man!
Zlatoslav Desyatnikov
@zlodes
Jul 18 2017 11:24
@prog-man, а чо, тебе тут не нравится? :worried:
prog-man
@prog-man
Jul 18 2017 11:25
@zlodes не, просто помнится где-то еще был чат, но не могу вспомнить где.
Zlatoslav Desyatnikov
@zlodes
Jul 18 2017 11:25
@prog-man где-то в телеграме был, но там чёт совсем не оч.
prog-man
@prog-man
Jul 18 2017 11:28
@zlodes вроде еще где-то был.
Vladyslav Gaysyuk
@mikield
Jul 18 2017 11:55
Привет всем
KarmaBot
@KarmaBot
Jul 18 2017 11:55
@mikield даров!
Vladyslav Gaysyuk
@mikield
Jul 18 2017 11:55
Есть знатоки отношений?
Ваня Devium
@webdevium
Jul 18 2017 11:56
@mikield между кем и кем?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 11:56
@webdevium many-to-many. Юзер с Группой через Доступ
Ваня Devium
@webdevium
Jul 18 2017 11:57
@mikield прекрасно. В чем проблема?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 11:58
@webdevium проблема такова: из доки читаю, это нужно решать через belongsToMany();
Такая связь строит странный sql.
Вот такой: select * from "groups" where "user_id" = ? and "deleted_at" is null
Andrey
@daaner
Jul 18 2017 11:59
@mikield а покажи как указал связь
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:00
@Daaner $this->belongsToMany(Group::class, Access::class, 'user_id', 'group_id')
Даже и не думал что у меня будет такого рода проблема, разрабатываю на ларе еще с начала 4-ки, и тут такой фейл... :(
пы.сы. помимо этого использую mongodb драйвер для eloquent, а точнее вот этот: https://github.com/jenssegers/laravel-mongodb
Но посмотрев на код, он вроде не влияет на строение запроса, а лишь меняет ключи
@mikield посмотри как нормальный чувак связи прописал
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:09
@webdevium окей, буду пробывать через morphToMany
Ваня Devium
@webdevium
Jul 18 2017 12:12
@mikield ну, для большинства задач морф и не надо
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:13
@webdevium
select * from "groups" inner join "user_groups" on "groups"."_id" = "user_groups"."group_id" where "user_groups"."user_id" = ? and "user_groups"."access_type" = ? and "deleted_at" is null
тут же нужно type модели
Ваня Devium
@webdevium
Jul 18 2017 12:14
какой type модели?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:15
@webdevium насколько я понимаю, morphToMany это из этого примера: https://laravel.com/docs/5.3/eloquent-relationships#many-to-many-polymorphic-relations
У меня же не такая ситуация, у меня https://laravel.com/docs/5.3/eloquent-relationships#many-to-many
Это как с ролями,
есть табличка ролей и юзеров и они свзяаны в user_role
Так же у меня, есть users, groups, и user_group и по идеи я испльзую belongsToMany
Ваня Devium
@webdevium
Jul 18 2017 12:17
@mikield у тебя есть пользователи, роли и доступы?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:17
@webdevium у меня юзеры, группы и связь (в ней уровень доступа)
Ваня Devium
@webdevium
Jul 18 2017 12:18
@mikield уровень доступа как поле в базе? или как отдельная связь?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:18
Все что я хочу создать - Юзер может иметь группу как овнер а так же может быть приглашен в другие группы с определенной ролью.
@webdevium пока как поле, но если надо будет вынести - вынесу.
@webdevium на данный момент я не ограничиваюсь уровнем доступа, мне бы хотя бы вывести всех пользователей которые связаны с группами.
Ваня Devium
@webdevium
Jul 18 2017 12:18
@mikield если пока как поле - hasMany и withPivot
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:19
@webdevium сейчас попроблую
Получается: User->hasMany(group)->withPivot('access_level') ?
Ваня Devium
@webdevium
Jul 18 2017 12:19
@mikield можно так
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:20
@webdevium вот такой sql:
select * from "groups" where "user_groups" is null and "user_groups" is not null and "deleted_at" is null
Ваня Devium
@webdevium
Jul 18 2017 12:20
@mikield нафиг все сломано
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:21
Сейчас его прочитал и задался вопросом: "WHattt?!" :D
Всзять все из групп где user_groups = null и user_groups != null :D
пздц
Ваня Devium
@webdevium
Jul 18 2017 12:21
не матерись
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:22
Я не написал его полностью :)
Фактически не мат)
В общем, я уже плачу я на это потратил уже 4 часа. Я уже разными способами пробивал.
Болит уже голова от этого, а таск надо на сегодня :(
Ваня Devium
@webdevium
Jul 18 2017 12:24

@mikield

  • users
  • groups
  • group_user

все три таблицы есть?

Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:24
Да
Ваня Devium
@webdevium
Jul 18 2017 12:25
@mikield описывай как тут и покажи сюда
https://laravel.com/docs/5.3/eloquent-relationships#many-to-many
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:25
@webdevium можно тебя на связь голосовую, чтобы не засирать тут чат текстовы?)
Ваня Devium
@webdevium
Jul 18 2017 12:25
@mikield я как секс по телефону, только дороже. Текстовые сообщения - бесплатны
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:26
return $this->belongsToMany(Group::class)->toSql();
select * from "groups" where "user_ids" = ? and "deleted_at" is null
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:26
@mikield расслабся))) Пожуй :banana: , попей :coffee: =)
Ваня Devium
@webdevium
Jul 18 2017 12:27
@mikield ты что-то вообще напрочь не то делаешь
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:27
@webdevium sql я достаю через ->toSql()
Ваня Devium
@webdevium
Jul 18 2017 12:28
@mikield ты логику запроса видишь?!
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:28
@webdevium да и я об этом же, что на уровне отношений все правильно, а вот sql странный на выходе
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:29
@mikield кажется он вполне правильный
белонгс ту мени - обратная для m2m и m2o связь
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:32

@SerafimArts в доке говорится что belongsToMany используется для Many-to-many отношений. Many-to-Many можно только через отдельную таблицу)
Что удивительно драйвер для eloquent под mongo делает это умственно отсталым способом. Он создает массив в users и туда указывает id-шки.
В Group таблице указывает user_id поле.

Из-за этого я подумал что возможно нужно 3-я сущьность (Access) и создал модель.
Пытаясь связать это через hasManyThrough() я получаю вроде правильный sql но с одной глупой деталью.

И так, есть 3 модели: User, Group, Access. (пользователь, группа, и доступ)
В Users пишу такое:
public function brands() { return $this->hasManyThrough(Group::class, Access::class, 'group_id', 'user_id'); }
На выходе получая запрос:
select * from "groups" inner join "user_group" on "_id" = "groups"."user_id" where "user_group"."group_id" = ? and "deleted_at" is null

Мне нужно: select * from "user_group" inner join "groups" on "_id" = "user_group"."group_id" where "user_group"."user_id" = ? and "deleted_at" is null

Сек... случайно отправил, допишу.....
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:35
@mikield ну так ты выборку делаешь групп, а не юзер групп =)))
UserGroup::with('groups')->get() должно получиться в конце
а, понял
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:36
@SerafimArts эксперементируя, я сделал
$this->hasManyThrough(Access::class, Group::class, 'user_id', 'group_id')
и получил в ответ select * from "user_group" inner join "groups" on "_id" = "user_group"."group_id" where "deleted_at" is null and "groups"."user_id" = ? Что опять не то :(
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:36
туплю
@mikield вроде как то что тебе надо, не?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:37
В последнем sql все правильно до момента: and "groups"."user_id" =
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:38
а, вижу
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:38
Он почему-то взял groups а не user_group
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:38
так ты вторым аргументом указал модель группы же
он и считает её промежуточной
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:38
Я бы давно уже забил и написал все в raw, но хочу через отношения :(
@SerafimArts ну да, в ней есть user_id и group_id
Связи между группами и юзерами
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:39
@mikield вначале ты указываешь конец, потом пивот, потом уже ключики
у тебя пивот - это группа
а не юзер_групп тейбл
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:40
То есть: $this->hasManyThrough(Group::class, Access::class, 'user_id', 'group_id') ?
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:40
а так у тебя пивот - это акссесс
а получаешь ты группу
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:40
Да, я хочу группы которые есть в Access
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:40
т.е делаешь связь на неё
ну тогда да, так
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:41
Если так, сейчас кину SQL
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:41
Access - это пивот user_groups?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:41
да
select * from "groups" inner join "user_group" on "_id" = "groups"."group_id" where "user_group"."user_id" = ? and "deleted_at" is null
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:41
ну вот, всё верно
ты получаешь группы
которые указаны в пивоте
Andrei Sosnov
@atehnix
Jul 18 2017 12:42
Всем неравнодушным предлагаю обратить внимание: LaravelRUS/chat#4
Ваше мнение очень важно! Спасибо! ;)
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:42
@SerafimArts on "_id" = "groups"."group_id" а это свяжет _id из user_group или из groups?
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:42
@atehnix в этом чате принято добавлять имя пользователя, чтобы его поблагодарить >:(
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:42
Вот она ошибка в этом sql
Andrei Sosnov
@atehnix
Jul 18 2017 12:42
@SerafimArts спасибо! =)
KarmaBot
@KarmaBot
Jul 18 2017 12:42
Спасибо (+1) для @SerafimArts принято! Текущая карма +751.
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:43
"groups"."group_id" такого поля не существует.
есть "groups"."_id"
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:43
последним аргументом значит должен быть '_id'
л - логика
:D
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:44
select * from "groups" inner join "user_group" on "_id" = "groups"."_id" where "user_group"."user_id" = ? and "deleted_at" is null
а как насчет inner join "user_group" on "_id"?
Такого тоже нету, есть user_group.group_id :D
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:45
ну ты сам настроил свои таблички через одно место
там есть конфиги ещё глубже
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:45
@SerafimArts не надо мои таблички обижать. Все так правильно
Как я уже и говорил, есть 3 таблички, users, groups, user_group
в последней есть user_id и group_id
все правильно же
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:47
а в первых должны быть айдишники
просто 'id'
т.е. primary key основной и конечных моделей
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:47
там и есть _id
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:47
он праймари?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:47
это primary key
да, это же mongo
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:47
и указан у моделей как pk?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:48
да
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:48
ну значит у монго косяки какие-то
хз
можно попробовать явно указать
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:48
Смотри в sql он сам их подставяет)
Ну я говорю, последнее решение -raw запросы
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:49
ну или я просто запутался =)
Vladyslav Gaysyuk
@mikield
Jul 18 2017 12:49
Ну думаю если и ты запутался то это уже полная жопа...
Вроде все же логично правда, но где-то есть косяк :(
Ваня Devium
@webdevium
Jul 18 2017 12:52
@mikield а ты читал как пивот таблицы называть надо?
@SerafimArts ты видишь, что пивот нестандартный? там надо порядок с наименованиями и связями сделать
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 12:54
@webdevium да вроде норм
user_groups
    group_id
    user_id

users
  _id PK

groups
  _id PK
насколько я понял

Сделать:

 /**
     * @return BelongsToMany
     */
    public function groups(): BelongsToMany
    {
        return $this->belongsToMany(Group::class, 'user_groups'); 
    }

И всё должно пахать как папа карло

Vladyslav Gaysyuk
@mikield
Jul 18 2017 13:08
@SerafimArts в общем боль, буду пилить костыли :(

@SerafimArts потому что

    $group = new \App\Models\Group([
        'type' => \App\Models\Group::BRAND_GROUP_TYPE
    ]);
    $group->save();
    /** @var \App\Models\User $user */
    $user = \App\Models\User::find('59414e068726e33b4c007ba3');
    $access = new \App\Models\Access([
        'type' => \App\Models\Access::ACCESS_TYPE_OWNER
    ]);
    $access->user()->associate($user);
    $access->group()->associate($group);
    $access->save();

Правильно все записывает :(

Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 13:11
kek
Vladyslav Gaysyuk
@mikield
Jul 18 2017 13:11
@SerafimArts и получаеться:
В табличке: user_groups

{
    "_id" : ObjectId("596e084a8726e32a5c007c7a"),
    "type" : 0,
    "user_id" : "59414e068726e33b4c007ba3",
    "group_id" : "596e084a8726e32a5c007c79",
    "updated_at" : ISODate("2017-07-18T13:08:26.000Z"),
    "created_at" : ISODate("2017-07-18T13:08:26.000Z")
}
@SerafimArts и
В табличке: groups

{
    "_id" : ObjectId("596e084a8726e32a5c007c79"),
    "type" : 0,
    "updated_at" : ISODate("2017-07-18T13:08:26.000Z"),
    "created_at" : ISODate("2017-07-18T13:08:26.000Z")
}
Не обращай внимание на ObjectId mongodb драйвер сам решает проблему где он есть а где его надо вставить ;)
Konstantin Komelin
@kkomelin
Jul 18 2017 14:08
Всем привет. Есть ли в чате участники http://laracon.us/ , который пройдет 25-26 июля в Нью-Йорке?
KarmaBot
@KarmaBot
Jul 18 2017 14:08
@kkomelin, здравствуй.
Dave
@aios
Jul 18 2017 14:09
@kkomelin мажор)
Konstantin Komelin
@kkomelin
Jul 18 2017 14:09
Мажор, вы едете?
А, если серьезно @aios, здесь правила есть. Хамство не приветствуется.
KarmaBot
@KarmaBot
Jul 18 2017 14:10
@kkomelin даров!
Dave
@aios
Jul 18 2017 14:11
@kkomelin ха... а где я нахамил?
Konstantin Komelin
@kkomelin
Jul 18 2017 14:11

@kkomelin мажор)

Что этим хотел сказать?

Dave
@aios
Jul 18 2017 14:12
@kkomelin ну я хотел сказать что у меня допустим нет лишних 3000 ток за перелет. так что на хамство это никак не тянет - типо не все вокруг твоего ЧСВ крутится.
Konstantin Komelin
@kkomelin
Jul 18 2017 14:13
Ну ты же не сказал, что ты не мажор, ты определил меня по своим критериям, что мне неприятно.
Если кто-то знает тех, кто едет, пожалуйста дайте мне знать.
Dave
@aios
Jul 18 2017 14:14
@kkomelin это мое субъективное - высказываю его где хочу, зачем и когда посчитаю нужным. Твое право его принять или отторгнуть. Но никак не указывать мне на правила чата - я почему то уверен что я тут дольше чем ты и что то мне подсказывает что я правила знаю чуть чуть лучше тебя.
@kkomelin если я тебя захочу как то задеть - меня типо никакие правила не остановят - и догадайся кто узнает об этом первый?
а так все в формате хихи хаха - что ты почему то решил раздуть в целую проблему.
Бесят блин.
Konstantin Komelin
@kkomelin
Jul 18 2017 14:18
@aios Я услышал тебя. Надеюсь, модератор отреагирует на твои выссказывания согласно правилам чата. Не будем больше тратить на меня твое время.
JhaoDa
@jhaoda
Jul 18 2017 14:19
@kkomelin расскажи и мне, одному из тех, кто писал правила чата, в чём тут хамство?
Dave
@aios
Jul 18 2017 14:20
@jhaoda забей, очередной ЧСВшник подъехал просто.
Konstantin Komelin
@kkomelin
Jul 18 2017 14:20
@jhaoda Расцениваю обращение "мажор" по отношению к себе, как оскорбление, так как таковым себя не считаю.
JhaoDa
@jhaoda
Jul 18 2017 14:21
@kkomelin сочувствую. К сожалению, модераторы не телепаты и не могут заранее знать, как кто-то отреагирует на вполне безобидное слово. Соответственно, безобидные слова считаются безобидными.
Dave
@aios
Jul 18 2017 14:22
@kkomelin Почитай пожалуйста психологию - раздел "Различие между субъективным мнением - и коллективным сознательным"
JhaoDa
@jhaoda
Jul 18 2017 14:22
Так же предлагаю закончить флуд
Konstantin Komelin
@kkomelin
Jul 18 2017 14:22
@jhaoda Я вас не знаю, могу назвать "мажором"?
JhaoDa
@jhaoda
Jul 18 2017 14:22
@kkomelin пожалуйста
Dave
@aios
Jul 18 2017 14:22
@jhaoda по правилам чата - у нас на "Ты" фтопку его))))
alexspi
@alexspi
Jul 18 2017 14:23
@kkomelin как его только не называли ))
Dave
@aios
Jul 18 2017 14:23
@alexspi xD
Konstantin Komelin
@kkomelin
Jul 18 2017 14:23
@jhaoda Понял тебя. Не буду более отвлекать.
Dave
@aios
Jul 18 2017 14:25
Ребят у кого рейты 15+ кто готов похалтурить? стучите в личку
cgurubest
@cgurubest
Jul 18 2017 14:25

Все привет, помогите разобраться как правильно связать модели,
и соответственно правильно вывести данные
есть три модели

Phrase
User
Rate

Модели Phrase и User ни как не связны между собой.
а таблица для модели Rate
имеет поля:
rate(itiger)
user_id
phrase_id

как правильно с помощью eloquent вывести все фразы конкретного пользователя отсортированные по рейтингу.

KarmaBot
@KarmaBot
Jul 18 2017 14:25
Приветствую тебя, @cgurubest!
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:27
:D Какая же это трудная задача Many-To-Many связь :(
cgurubest
@cgurubest
Jul 18 2017 14:27
Да вроде пробовал...
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:28
@cgurubest belongsToMany?
Ваня Devium
@webdevium
Jul 18 2017 14:28
@cgurubest опять же, hasMany и withPivot
cgurubest
@cgurubest
Jul 18 2017 14:28
Да, понимаю что где то туплю, но не могу понять где. сейчас еще раз попробую.
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:29
@webdevium но это же Many-To-Many. типичная связь, в каждом проекте 100% есть.
Зачем все усложнять через hasMany и withPivot?
JhaoDa
@jhaoda
Jul 18 2017 14:29
@cgurubest ты же гуру бест, какие у тебя вообще могут быть вопросы?
Ваня Devium
@webdevium
Jul 18 2017 14:30
@mikield user говорит phrases, ему надо остортировать их по рейтингу.
cgurubest
@cgurubest
Jul 18 2017 14:30
Но не во всем же ))
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:30
@jhaoda :D Я вроде тоже не новичек :D
@webdevium о каком рейтинге идет речь?
JhaoDa
@jhaoda
Jul 18 2017 14:30
@mikield вы не пан Новичек?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:30
@jhaoda всмысле? o_O
cgurubest
@cgurubest
Jul 18 2017 14:31
return $this->hasMany('App\Rate')->withPivot('rates');
Так?
JhaoDa
@jhaoda
Jul 18 2017 14:31
@mikield в том смысле, что «новичок»
Ваня Devium
@webdevium
Jul 18 2017 14:31
@cgurubest ну как в доке? так?
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:31
@jhaoda нет. новичок так новичок. Русский не мой конек :D
cgurubest
@cgurubest
Jul 18 2017 14:32
если так делаю то получаю
Call to undefined method Illuminate\Database\Query\Builder::withPivot()
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:32
@webdevium ага, я понял, что идет сортировка по полю rate(intiger)
Но в моем то примере не было сортировки.
Ваня Devium
@webdevium
Jul 18 2017 14:33
@mikield ну вот, кейсы разные, разные решения
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:33
@webdevium а вы советовали то же решение :)
Ваня Devium
@webdevium
Jul 18 2017 14:33
@cgurubest belongsToMany
JhaoDa
@jhaoda
Jul 18 2017 14:34
@mikield ты ещё и любитель правила нарушать... видимо, это твоё конёк :)
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:34
@jhaoda да я такой ;) бунтарь, блин
cgurubest
@cgurubest
Jul 18 2017 14:36
если делаю так:
return $this->belongsToMany('App\Rate','rates','user_id','phrase_id');
Ваня Devium
@webdevium
Jul 18 2017 14:36
@cgurubest то неправильное делаешь
cgurubest
@cgurubest
Jul 18 2017 14:37
тоже ошибка, а как правильно? @webdevium
Пытаюсь запускать из модели Phrase
public function sort()
{
return $this->belongsToMany('App\Rate','rates','user_id','phrase_id');
}
Ваня Devium
@webdevium
Jul 18 2017 14:38
вот скажи словами простыми что ты объявляешь
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:38
@cgurubest у меня кстати ошибки не было, у меня вообще ничего не было. Просто путая коллекция :D Кстати записывало оно правильно используя связь.
Ваня Devium
@webdevium
Jul 18 2017 14:39
имеем Rate через rates используя связку user_id и phrase_id
cgurubest
@cgurubest
Jul 18 2017 14:41
Я уже столько всякого перепробовал что уже просто окончательно запутался.
Пришел чтоб ткнули носом ))
Ваня Devium
@webdevium
Jul 18 2017 14:41
ну давай по-простому
user есть? добейся, чтоб вытащились все его фразы
JhaoDa
@jhaoda
Jul 18 2017 14:42
@cgurubest и начни оформлять код в чатике
cgurubest
@cgurubest
Jul 18 2017 14:42
как это?
Сижу и думаю какой тег или что?
JhaoDa
@jhaoda
Jul 18 2017 14:42
@cgurubest в правилах написано, но ты их читать не стал, ты же гуру — какие правила, да?
cgurubest
@cgurubest
Jul 18 2017 14:44
@jhaoda подскажи плиз, если не сложно!
Ваня Devium
@webdevium
Jul 18 2017 14:44
@cgurubest справа снизу буква M и стрелочка вниз. Нажми туда.
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 14:45
@jhaoda это всё же рекомендации, а не правила, имхо
правила при входе
=)
cgurubest
@cgurubest
Jul 18 2017 14:46
@webdevium спасибо
KarmaBot
@KarmaBot
Jul 18 2017 14:46
Спасибо (+1) для @webdevium принято! Текущая карма +186.
cgurubest
@cgurubest
Jul 18 2017 14:47
ок, прочту правила
Сейчас думаю как же выбрать фразы по user_id
они у меня ни как не связаны. это вероятно смотреть в сторону morphToMany
Ваня Devium
@webdevium
Jul 18 2017 14:49
@cgurubest phrase хранится в своей таблице имея user_id
cgurubest
@cgurubest
Jul 18 2017 14:50
у фразы нет user_id фразы для всех одни и те же
Ваня Devium
@webdevium
Jul 18 2017 14:50
@cgurubest значит manytomany
описывай связь
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:51
Послежу за вашей дискуссией, может вдруг и для меня решение выплывет :D
Ваня Devium
@webdevium
Jul 18 2017 14:51
@mikield открой доку и прочти
Vladyslav Gaysyuk
@mikield
Jul 18 2017 14:52
@cgurubest не думаю что я там найду что-то нового, сегодня всю доку по отношениям перечитывал 2 раза
cgurubest
@cgurubest
Jul 18 2017 14:53
Ну если ManytoMany
значит так?
'''public function sort()
{
return $this->belongsToMany('App\Rate');
}'''
``` public function sort()
{
return $this->belongsToMany('App\Rate');
} ```
Ваня Devium
@webdevium
Jul 18 2017 14:54
@cgurubest
return $this->belongsToMany(App\Rate::class);
cgurubest
@cgurubest
Jul 18 2017 14:56
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'btc.phrase_rate' doesn't exist (SQL: select `rates`.*, `phrase_rate`.`phrase_id` as `pivot_phrase_id`, `phrase_rate`.`rate_id` as `pivot_rate_id` from `rates` inner join `phrase_rate` on `rates`.`id` = `phrase_rate`.`rate_id` where `phrase_rate`.`phrase_id` is null)
KarmaBot
@KarmaBot
Jul 18 2017 14:57
@cgurubest, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой «Ё»).
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка M↓ внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
cgurubest
@cgurubest
Jul 18 2017 14:58
    public function sort()
    {
        return $this->belongsToMany(Rate::class);
    }
Это из модели Phrase
Ваня Devium
@webdevium
Jul 18 2017 14:59
@cgurubest оооо
cgurubest
@cgurubest
Jul 18 2017 14:59
И вывод:
dd($ph->sort);
Ваня Devium
@webdevium
Jul 18 2017 14:59
мы дошли до того момент, что у тебя нет phrase_rate
он у тебя есть?
cgurubest
@cgurubest
Jul 18 2017 15:01
нет, есть просто вот так
http://prntscr.com/fx7qxh
Ваня Devium
@webdevium
Jul 18 2017 15:01
@cgurubest как ЭТО называется?
cgurubest
@cgurubest
Jul 18 2017 15:03
Ну вроде в мануале не были ничего подобного!
Сказали что можно указать таблицу руками, но я пробовал, сейчас могу еще попробовать
Ваня Devium
@webdevium
Jul 18 2017 15:03
@cgurubest это пивот таблица
cgurubest
@cgurubest
Jul 18 2017 15:04
Ну вроде у меня rates и есть пивотная
просто я ее не сразу назвал по стандарту
Ваня Devium
@webdevium
Jul 18 2017 15:05
@cgurubest либо я тебя не понимаю, либо ты что-то намудрил
cgurubest
@cgurubest
Jul 18 2017 15:05
второе скорее всего ))
Ваня Devium
@webdevium
Jul 18 2017 15:05
users есть?
phrases есть?
phrase_user надо
cgurubest
@cgurubest
Jul 18 2017 15:06
но разве она не может быть с названием rates, как сейчас?
Ваня Devium
@webdevium
Jul 18 2017 15:06
@cgurubest или любая другая, которая будет состоять с phrase_id и user_id
@cgurubest может, но тогда ее надо прокинуть в описание связи
cgurubest
@cgurubest
Jul 18 2017 15:07
   public function sort()
    {
        return $this->belongsToMany(Rate::class,'rates', 'user_id','phrase_id');
    }
Вот тут вроде явно указываем таблицу, и ключи для связи.
Ваня Devium
@webdevium
Jul 18 2017 15:07
@cgurubest ну так методы не называют, обдумай
@cgurubest ну ок, у тебя есть отдельная таблица rates?
cgurubest
@cgurubest
Jul 18 2017 15:08
согласен, я уже туда пока не смотрю 100 раз уже их переименовывал,
да отдлельная пивотная таблица есть
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'rates' (SQL: select `rates`.*, `rates`.`phrase_id` as `pivot_phrase_id`, `rates`.`rate_id` as `pivot_rate_id` from `rates` inner join `rates` on `rates`.`id` = `rates`.`rate_id` where `rates`.`phrase_id` is null)
Ваня Devium
@webdevium
Jul 18 2017 15:09
@cgurubest ты мне показал таблицу rates?
cgurubest
@cgurubest
Jul 18 2017 15:09
да,
Ваня Devium
@webdevium
Jul 18 2017 15:09
@cgurubest давай еще раз
user->phrases
@cgurubest каждый пользователь должен иметь фразы
сделай просто связь на фразы
@cgurubest забудь пока про рейтинг
cgurubest
@cgurubest
Jul 18 2017 15:11
ок, добавил в USERS
```
public function Phrases(){
        return $this->hasMany(Phrase::class);
    }
Верно?
Ваня Devium
@webdevium
Jul 18 2017 15:13
@cgurubest а пользователь может иметь фразы, которые имеет другой пользователь. Значит не hasMany
cgurubest
@cgurubest
Jul 18 2017 15:13
нет, все фразы одни для всех
Я потому и не делал User_id
что бы не дублировать
их
Ваня Devium
@webdevium
Jul 18 2017 15:14
@cgurubest не не, user_id должен быть в пивот таблице
@cgurubest чтоб знать есть ли у пользователя фраза заюзаннная
cgurubest
@cgurubest
Jul 18 2017 15:15
Тогда как правильно связать User и Phrase если нет user_id у фразы, через pivot?
Ваня Devium
@webdevium
Jul 18 2017 15:16
@cgurubest через пивот
cgurubest
@cgurubest
Jul 18 2017 15:16
Что тут изменить?
public function Phrases(){
        return $this->hasMany(Phrase::class);
    }
Это в моделе User
Ваня Devium
@webdevium
Jul 18 2017 15:17
@cgurubest
public function phrases()
{
    return $this->belongsToMany(Phrase::class, 'NAME_OF_PIVOT_TABLE');
}
@cgurubest в пивот ДОЛЖЕН БЫТЬ user_id и phrase_id
cgurubest
@cgurubest
Jul 18 2017 15:21
да, данные по всем фразам пришли!
Ваня Devium
@webdevium
Jul 18 2017 15:21
@cgurubest прям по всем всем?
cgurubest
@cgurubest
Jul 18 2017 15:24
Ну вероятно по тем фразам у которых были записи в таблице rates для текущего пользователя.
Ваня Devium
@webdevium
Jul 18 2017 15:24
@cgurubest так проверь :)
cgurubest
@cgurubest
Jul 18 2017 15:26
да, как раз проверяю
всего фраз 44 пришло в ответе 22
потому что по этим фразам есть данные в таблице rates
фразы по которым не было данных не пришли
Ваня Devium
@webdevium
Jul 18 2017 15:26
@cgurubest Связи работают! Хорошо. Да?
cgurubest
@cgurubest
Jul 18 2017 15:26
Ну пока, эта связь заработала.
Ваня Devium
@webdevium
Jul 18 2017 15:27
@cgurubest Теперь ты можешь в любой момент получить фразы любого пользователя, если они есть.
Что осталось сделать?
cgurubest
@cgurubest
Jul 18 2017 15:27
появились поля
"pivot_user_id" => 41
"pivot_phrase_id" => 1
Ваня Devium
@webdevium
Jul 18 2017 15:27
@cgurubest они тебе не мешают :)
cgurubest
@cgurubest
Jul 18 2017 15:28
:smile:
Хорошо, мысль мне понятна и очень интересна, я попробую покапать дальше.
@webdevium Огромное спасибо.
KarmaBot
@KarmaBot
Jul 18 2017 15:28
Спасибо (+1) для @webdevium принято! Текущая карма +187.
cgurubest
@cgurubest
Jul 18 2017 15:29
Если уже не получится, приду еще раз,
Ваня Devium
@webdevium
Jul 18 2017 15:30
@cgurubest не приходи
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 15:31
@webdevium а ты не хами
cgurubest
@cgurubest
Jul 18 2017 15:31
постараюсь
Ваня Devium
@webdevium
Jul 18 2017 15:31
@cgurubest сам разберись раз и навсегда, и приходи не за помощью, а за советами другим
я за повышение количества желающих помочь другим
@SerafimArts а ты за других не додумывай
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 15:32
@webdevium а ты всё равно не хами+
Ваня Devium
@webdevium
Jul 18 2017 15:32
@SerafimArts а ты не обвиняй человека в том, что он не делал
Kirill Nesmeyanov
@SerafimArts
Jul 18 2017 15:33
@webdevium мне можно, я - самодур
cgurubest
@cgurubest
Jul 18 2017 15:33
Я согласен, я просто 2 день сижу, и не понимаю сути. Не выдержала душа.
Хотя задача я так понимаю элементарная, но фундамента пока не хватает.
Ваня Devium
@webdevium
Jul 18 2017 15:33
@cgurubest все получится
@SerafimArts трубодур
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:13
котаны, кто с Люмен работал и тесты могет писать ?
KarmaBot
@KarmaBot
Jul 18 2017 18:13
@nasyrov, а не поехать ли тебе в Пензу с котанами?
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:15
я ищу разработчиков кто знает что такое Lumen & TDD
Ваня Devium
@webdevium
Jul 18 2017 18:16
@nasyrov тебе помощь нужна?
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:16
@webdevium хотел бы работу предложить
Ваня Devium
@webdevium
Jul 18 2017 18:16
@nasyrov лучше в вк пост оформи
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:16
на фрилансе разместил обьяву, там одни сайт-визитки
ща накатаю
во, запостил !
посоны, кому интересно поработать, TDD и вся херня - пишите в ВК
Ваня Devium
@webdevium
Jul 18 2017 18:25
Да потому, что на lumene чаще всего визитки и штампуют. Мощь sinatra подобных фреймворков не с первого раза осознать получается)
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:27
да не, на фралансе только этим и занимаются
я на Lumen пишу API
по моему этот framework именно заточен под это дело, не нужно вьюшки и ничего лишнего
Ваня Devium
@webdevium
Jul 18 2017 18:29
любой sinatra фрейм для АПИ подходят
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:29
ну не
если брать какой нить Slim, там с нуля придется писать дофига
когда у ларвел/люмен все из коробки
Ваня Devium
@webdevium
Jul 18 2017 18:30
ну да ну да
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:30
slim подобные это роутеры
обрубки какие то :)
Ваня Devium
@webdevium
Jul 18 2017 18:31
главное уметь пользоваться
как говорил дядя Т - и на ларе можно ужас кодить
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:33
да везде можно
@webdevium где народ то ?
че тут все умерли
Ваня Devium
@webdevium
Jul 18 2017 18:34
работают люди, или отдыхают
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:35
хватит отдыхать, пора unit test'ы писать
Ваня Devium
@webdevium
Jul 18 2017 18:35
ну может быть кто и откликнется
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:36
все разленились, никто не хочет подработать
Ваня Devium
@webdevium
Jul 18 2017 18:36
мала компенсация или нехватка опыта
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:37
надо набираться опыта
потом собирать трактор
и сваливать :)
Юрий
@sawerus
Jul 18 2017 18:38
Надо пойти в оффтоп ))
Evgenii Nasyrov
@nasyrov
Jul 18 2017 18:38
не надо
Alexej
@Lunatig
Jul 18 2017 18:58

подскажите пожалуйста.
по какой причине сессии могут не сохраняться ?

 session(['key' => 'value']);

есть значение. А при получении
session('key' ) - null

Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:02
@lunatig ты сессию куда сохраняешь ?
редис ?
Alexej
@Lunatig
Jul 18 2017 19:03
@nasyrov и file пробовал и memcached . всеравно (
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:03
а ты где session используешь ?
в контроллере ?
Alexej
@Lunatig
Jul 18 2017 19:03
@nasyrov да
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:04
ты на локалке пробуешь ?
Alexej
@Lunatig
Jul 18 2017 19:04
@nasyrov нет. на сервере. на хостинге сразу
@nasyrov memcached с кешем нормально работает.
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:04
мб пхп криво настроен ?
на локалке то работает норм ?
Alexej
@Lunatig
Jul 18 2017 19:05
@nasyrov не пробовал. счас попробую.
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:05
тесты надо писать молодой человек перед тем как деплой делать
попробуй на локалке
посмотри на серваке конфиг пхп
Alexej
@Lunatig
Jul 18 2017 19:08
@nasyrov пробую. спасибо. буду искать.
@nasyrov глваное что не ларки настройки.
JhaoDa
@jhaoda
Jul 18 2017 19:10
@nasyrov а при чем тут РНР?
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:12
мало ли у него сессии не стартуют на серваке
Alexej
@Lunatig
Jul 18 2017 19:13
@nasyrov напрямую фукнциями php они работают на другом проекте.
на этом же сервере
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:13
фига у вас там
кстати а ты кеш конфига не делал ?
а то может там правишь .env а оно и не работает
Alexej
@Lunatig
Jul 18 2017 19:14
кэш конфига не делал.
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:15
дебаж чо
попробуй dd($_SESSION)
Alexej
@Lunatig
Jul 18 2017 19:18
@nasyrov Undefined variable: _SESSION
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:18
даже лучше var_dump
там же через middleware сделано
в файлы если пишешь посмотри права на папку чтоб 755
JhaoDa
@jhaoda
Jul 18 2017 19:20
@nasyrov тебе стальной линейкой по рукам за такие советы
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:20
да
просто на продакшене var_dump делай
все норм
:)
не я серьезно, dd не сработает, так как запись в сессию идет после отдачи response
Alexej
@Lunatig
Jul 18 2017 19:22

@nasyrov

  session_start();

 $_SESSION['key']='value';

   dd($_SESSION);

четко работает. все сохраняет.

Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:23
ты кстати случайно не отключил middleware которая отвечает за сессии ?
Alexej
@Lunatig
Jul 18 2017 19:23
@nasyrov а как это проверить?
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:24
ну начинается
32 строка
и смотри чтоб у тебя роут был в группе web
Alexej
@Lunatig
Jul 18 2017 19:26
@nasyrov ВСЕ. починил.! Спасибо! причина была в настройках. ты сказал про файлы. и я понял. что он и правда не может в файл записать.
по умолчанию стоял file а из env почему то memcached не передалось.
спасибо!
KarmaBot
@KarmaBot
Jul 18 2017 19:26
Спасибо (+1) для @nasyrov принято! Текущая карма +1.
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:26
не за что
смотри laracasts иногда
Alexej
@Lunatig
Jul 18 2017 19:27
вопрос. а почему из env не передалось )))
SESSION_DRIVER=memcached
у тебя точно так же прописано и обернуто в env ?
Alexej
@Lunatig
Jul 18 2017 19:27
'driver' => env('SESSION_DRIVER', 'memcached'), - работает .
'driver' => env('SESSION_DRIVER', 'file'), - а так нет ))
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:28
а ты точно .env правишь ?
или .env.example ?
Alexej
@Lunatig
Jul 18 2017 19:29
@nasyrov точно. ну я не настолько чукча.
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:30
ты поправь в .env и перезапусти php может у тебя opcache жестко настроен
Alexej
@Lunatig
Jul 18 2017 19:30
другие то настройки оперативно отрабатывает.
@nasyrov переключение в env с тестовой на рабочую базу четко проходит.
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:31
ну у тебя env('SESSION_DRIVER', 'file') вот так не работает правильно?
Alexej
@Lunatig
Jul 18 2017 19:31
@nasyrov да. по умолчанию значение берет
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:31
если file не работает, то наверное проблемы с правами на запись в файлы
Alexej
@Lunatig
Jul 18 2017 19:32
@nasyrov ну это да. поэтому я и не файл выберал а memcached
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:32
chmod-дни storage/framework/sessions
Alexej
@Lunatig
Jul 18 2017 19:33
@nasyrov 755
@nasyrov все там нормально. папочка создалась сегодня. и файлик в ней есть. сегодняшний.
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:35
ты кстати в конфине прям сделай dd(env('SESSION_DRIVER'))
посмотри принимает ли значение из твоего .env
Alexej
@Lunatig
Jul 18 2017 19:37
@nasyrov все верно показывает.
незнаю. наверное комп устал от меня и говорит иди спать ты меня задолбал.
спасибо.
все работает
Evgenii Nasyrov
@nasyrov
Jul 18 2017 19:37
хах
давай
Max
@maxiwer
Jul 18 2017 20:24
Всем доброй ночи
KarmaBot
@KarmaBot
Jul 18 2017 20:24
О! @maxiwer! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
Ваня Devium
@webdevium
Jul 18 2017 20:25
@maxiwer доброй
Max
@maxiwer
Jul 18 2017 20:25
Есть кто из freeCodeCamp?
webdevium @webdevium где такие названия берутся?
Max
@maxiwer
Jul 18 2017 20:27
@webdevium это вы мне?
Ваня Devium
@webdevium
Jul 18 2017 20:28
@maxiwer не, всем
Max
@maxiwer
Jul 18 2017 20:28
@webdevium Какие названия?
Ваня Devium
@webdevium
Jul 18 2017 20:30
@maxiwer всяких конкурсов, мероприятий и т.д.
Max
@maxiwer
Jul 18 2017 20:31
@webdevium Вы о freeCodeCamp?
Ваня Devium
@webdevium
Jul 18 2017 20:31
@maxiwer ага
Max
@maxiwer
Jul 18 2017 20:33
@webdevium Не знаю. Можете Quincy Larson'а спросить он тут бывает иногда кажется.)
Ваня Devium
@webdevium
Jul 18 2017 20:34
@maxiwer название сайта сменилось именем и фамилией какого-то чувака. Вот я как раз об этом.
@maxiwer в общем, тебе помощь надо или нет?
Max
@maxiwer
Jul 18 2017 20:35
@webdevium уже не надо спасибо.)
KarmaBot
@KarmaBot
Jul 18 2017 20:35
Спасибо (+1) для @webdevium принято! Текущая карма +188.