These are chat archives for LaravelRUS/chat

26th
Jan 2017
NoViKoFF
@AndrewNovikof
Jan 26 2017 05:38
@3gsxarakiri , начнем с банального..Ты филэйбл поля указал?)
@3gsxarakiri плюс, ты как мудришь, создавая Партнера через экземпляр модели, не создав при этом итем в коллекции Инспекций. Откуда елокуэнт поймет к какой инспекции относится партнер, если ее ещё нет? Ты или создавай Инспекцию, и через нее партнера, или создавай партнера, а потом через него инспекцию
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 06:15

@AndrewNovikof разумеется указал:)

protected $table = 'UserInspection';
protected $fillable = ['inspection_id', 'partner_id', 'status', 'disable_id', 'comment'];

и

protected $table = 'Partner';
protected $fillable = ['uid', 'login', 'balance', 'hold', 'orders', 'approve', 'fail', 'done'];

а что касается второй части, то разумеется я сперва создаю проверку:) Что собстенно отображено в последнем "мини-листинге"

$userInspection = new UserInspections(); //Создаю инспекцию
$userInspection->partners()->create([
         some data here
]); //создаю партнера через только что созданную инспекцию
Andrei Sosnov
@atehnix
Jan 26 2017 06:30
@3gsxarakiri создаешь, но не сохраняешь.. ;)
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 06:39

@atehnix а если так ;-)

$userInspection = UserInspections::create([]); //здаю пустую проверку (в базе пишутся default-значения) 
$inspection->UserList()->save($userInspection); //Добавляю в список проверок

some code here

$userInspection->partners()->create([
   some data here
 ]); // пытаюсь добавить партнера в проверку

в итоге, запись в таблице userinspections создается, в ней даже корректно прописан ID от листа проверок, а вот id партнера не прописан :(
userispection

Конечно, я могу просто "ручками" прописать id партнера, в поле partner_id инспекции(проверки), через update, но не думаю, что это правильное решение :worried:
Andrei Sosnov
@atehnix
Jan 26 2017 06:52
@3gsxarakiri у тебя какой-то странный нейминг, из-за которого тяжело ориентироваться что у тебя к чему привязываться должно)
Связь hasOne с именем во мн.числе, модели во мн.числе, а таблицы в ед.числе (обычно наоборот) и т.д.. Не то чтобы это совсем критично, но понимать немного мешает, ибо диссонанс)
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 07:00
@atehnix Спасибо большое, за замечание! Обязательно исправлю:)
KarmaBot
@KarmaBot
Jan 26 2017 07:00
Спасибо (+1) для @atehnix принято! Текущая карма +198.
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 07:00
Но вот сперва хотелось бы понять, почему он, гад эдакий, не сохраняет партнера :(
NoViKoFF
@AndrewNovikof
Jan 26 2017 07:25
@3gsxarakiri
Твою мать, через андроид прилагу все криво работает. Буду за компом опишу где ты не прав)
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 07:37
@AndrewNovikof с нетерпением жду, а то я в упор свой косяк не вижу :-(
Soprun Vladislav
@vlsoprun
Jan 26 2017 07:51
Здорова мужики!
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 07:53
Привет!
KarmaBot
@KarmaBot
Jan 26 2017 07:53
@3gsxarakiri и тебе не хворать :)
NoViKoFF
@AndrewNovikof
Jan 26 2017 07:59
@3gsxarakiri
Ну вообще вот так должно работать:
$user_inspection = UserInspections::create([ 
  some fields bla bla bla
 ]);
$user_inspection->partners()->create([
  some fields bla bla bla
 ]);
@3gsxarakiri Т.е. тебе нужно от СОЗДАННОГО экземпляра модели создавать связанный экземпляр модели
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 08:01

Собственно я так и делаю :(

@atehnix а если так ;-)

$userInspection = UserInspections::create([]); //здаю пустую проверку (в базе пишутся default-значения) 
$inspection->UserList()->save($userInspection); //Добавляю в список проверок

some code here

$userInspection->partners()->create([
   some data here
 ]); // пытаюсь добавить партнера в проверку

в итоге, запись в таблице userinspections создается, в ней даже корректно прописан ID от листа проверок, а вот id партнера не прописан :(
userispection

NoViKoFF
@AndrewNovikof
Jan 26 2017 08:01
@3gsxarakiri Нет
Хотяяя
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 08:03

Видимо еще не проснулся и не понимаю Вас:(

$user_unspection = UserInspections::create([ 
  some fields bla bla bla
 ]); //Указали Вы

$userInspection = UserInspections::create([]); //Указал я

$user_unspection->partners()->create([
  some fields bla bla bla
 ]);//Указали Вы

$userInspection->partners()->create([
   some data here
 ]);//Указал я

Идентично же:)

NoViKoFF
@AndrewNovikof
Jan 26 2017 08:04
@3gsxarakiri видимо я тоже не проснулся :smile:
@3gsxarakiri у нас принято обращаться на Ты))
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 08:04
Хорошо:)
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 08:12
Я вот уже грешным делом на связь грешу... что неправильно настроил, но тоже не вижу проблемы :(
Schema::table('UserInspection', function (Blueprint $table){
            $table->foreign('partner_id')->references('id')->on('Partner')->onDelete('cascade');
        });
NoViKoFF
@AndrewNovikof
Jan 26 2017 08:13
@3gsxarakiri мда, со стандартами у тебя проблема) Посмотри, работает ли релэйшен partner вообще
@3gsxarakiri Таблицы должны быть snake_case в множественном числе
Модели должны быть CamelCase в единственном числе
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 08:15

@AndrewNovikof ну, что стандарты у меня "гуляют", это да, нужно исправляться :(
что касается связи, то да, она работает, иначе как бы через такую запись

$userInspection->partners()->create([
   some data here
 ]);

создался бы партнер, но он ведь создается корректно.

NoViKoFF
@AndrewNovikof
Jan 26 2017 08:16
Тогда я умываю руки :smile:
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 08:17

Пойду тогда хотя бы миграции поправлю, согласно этим рекомендациям, а то от решения этой проблемы уже голова зудит :)

@3gsxarakiri Таблицы должны быть snake_case в множественном числе
Модели должны быть CamelCase в единственном числе

@AndrewNovikof Видимо пока будут "ручками" прописывать id партнера в поле Инспекций, а там смотри, может и решение найдется)
Xannn94
@Xannn94
Jan 26 2017 08:25

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

Route::get('robots.txt',function (){
        dump('test');
    });

в браузере перехожу по адрессу:
myapp.test/robots.txt
Все остальные роуты работают

Andrei Sosnov
@atehnix
Jan 26 2017 08:26
@Xannn94 потому что в public лежит файл с идентичным именем.
Xannn94
@Xannn94
Jan 26 2017 08:27
@atehnix если уберу оттуда этот файл то будет срабатывать роут?
Andrei Sosnov
@atehnix
Jan 26 2017 08:27
@Xannn94 что стоит проверить?)
Xannn94
@Xannn94
Jan 26 2017 08:28
@atehnix спасибо)
KarmaBot
@KarmaBot
Jan 26 2017 08:28
Спасибо (+1) для @atehnix принято! Текущая карма +199.
Xannn94
@Xannn94
Jan 26 2017 08:29
@atehnix а кроме как перетаскивать куда-нибудь этот файл есть вариант попадать сразу в роут?
Andrei Sosnov
@atehnix
Jan 26 2017 08:32
@Xannn94 настроить nginx/apache, чтобы игнорировал этот файл в public. Но хз зачем так извращаться)
Xannn94
@Xannn94
Jan 26 2017 08:32
да чтобы в настройках выключать его по надобности)
Andrei Sosnov
@atehnix
Jan 26 2017 08:35
@Xannn94 ну так если удалишь файл в public - будешь попадать в роут. А в нем уже в зависимости от твоих настроек возвращай/не возвращай то что тебе надо)
Xannn94
@Xannn94
Jan 26 2017 08:52
@atehnix спасибо)
KarmaBot
@KarmaBot
Jan 26 2017 08:52
Спасибо (+1) для @atehnix принято! Текущая карма +200.
Ivan
@Hunternnm
Jan 26 2017 08:56
@atehnix о, дошел до нормального http-кода
Andrei Sosnov
@atehnix
Jan 26 2017 09:00
@Hunternnm :ok: )
PheRum
@PheRum
Jan 26 2017 11:32
привет парни. кто-нить юзает ларавельную датабазу вне ларавела?
Arsen Soroka
@arsen-s
Jan 26 2017 11:35
есть какая то особенная БД в ларке?
JhaoDa
@jhaoda
Jan 26 2017 11:35
@arsen-s он про illuminate/database
Просто ему лень писать человекопонятно :)
@PheRum ну есть тут минимум один такой человек
Andrei Sosnov
@atehnix
Jan 26 2017 11:37
@PheRum ну есть тут минимум два таких человек
@PheRum рады были помочь! :)
Ivan
@Hunternnm
Jan 26 2017 11:51
Тут три таких человека
Denys
@dfinchenko
Jan 26 2017 12:01
Всем привет! Сорри за такой может тривиальный вопрос, но необходимо с MySQL сначало получить все данные и потом получать только новые записи. Подскажите пожалуйста как реализовать.
Andrei Sosnov
@atehnix
Jan 26 2017 12:05
@dfinchenko что " как реализовать"?
"Как получить данные"? "Как получить данные с условием"?
zanec92
@zanec92
Jan 26 2017 12:23
всем привет! подскажите пожалуйста, как версионировать(version()) комбинированные файлы(combine()) через laravel mix? версионирование срабатывает только для компиленных файлов. и почему после компиляции пропадает объект jquery из app.js?
stranger-ru
@stranger-ru
Jan 26 2017 12:23

Всем привет.

У модели в БД хранится два поля first_name и last_name
Мне нужно определить динамическое поле full_name, которое будет формироваться на основании полей, хранящихся с БД, что-то вроде:

public function getFullName() 
{
    return $this->first_name . ' ' . $this->last_name;
}

и далее при получении списка моделей:

    $peoples = People::find()->all()

у меня это поле было в результате:

[
    {
        first_name: 'Alexander',
        last_name: 'Petrov',
        full_name: 'Alexander Petrov',
    },
    {
        first_name: 'Andrey',
        last_name: 'Ivanov',
        full_name: 'Andrey Ivanov',
    },
    ...
]

Как можно такое реализовать?

JhaoDa
@jhaoda
Jan 26 2017 12:27
@stranger-ru можно пойти и почитать документацию про аксессоры
Andrei Sosnov
@atehnix
Jan 26 2017 12:28
@stranger-ru чуть спойлеров, пока я добрый.. :)
accessors & appends
JhaoDa
@jhaoda
Jan 26 2017 12:28
@atehnix пусть сам бы искал, чо ты
Denys
@dfinchenko
Jan 26 2017 12:30
@atehnix сам запрос MySQL, чтобы брать только новые записи. Спасибо большое!
Andrei Sosnov
@atehnix
Jan 26 2017 12:32
@dfinchenko не, я все таки не настолько добрый.. :)
stranger-ru
@stranger-ru
Jan 26 2017 12:33
@atehnix, @jhaoda спасибо, разобрался.
Denys
@dfinchenko
Jan 26 2017 12:55
@atehnix что ж, тогда Вам как и мне это надо учить, так как для разработчиков полезная вещь)
Andrei Sosnov
@atehnix
Jan 26 2017 12:58
гы) :)
@dfinchenko хорошо, спасибо!)
Alexander
@Dualse
Jan 26 2017 13:30
@dfinchenko А что ты подразумеваешь под "новые записи"?
Denys
@dfinchenko
Jan 26 2017 13:34
@Dualse по сути подразумеваю реплику с одной таблицы во вторую. Тоесть необходимо повесить скрипт в планировщике, например, на каждый час исполнения, который будет смотреть в главную таб. БД и искать новые записи, которых нет еще во второй БД в этой таб. и добавлять туда.
@Dualse буду очень благодарен за совет!
Alexander
@Dualse
Jan 26 2017 13:43
@dfinchenko А что тут сложного? Делаешь выборку из одной таблицы, из второй делаешь выборку с условием, что id отсутствуют в первой таблице. whereNotIn тебе поможет
Denys
@dfinchenko
Jan 26 2017 13:51
Решение проблемы может есть и другое, но самое простое - это брать mainid последней перенесенной записи во второую таблицу (куда сладываются новые данные) и получать с главной таблицы записи с большим от этого id )) Всем хорошего дня!)
@Dualse спасибо большое!
Alexander
@Dualse
Jan 26 2017 14:16
@SerafimArts бот лежит или со стороны гиттера проблемы?
zanec92
@zanec92
Jan 26 2017 14:38
может кто-нибудь с laravel mix помочь??)
Alexander
@spartaque
Jan 26 2017 14:39
Не подскажете как правильно сделать "жесткий" редирект? через echo redirect($url);exit; выводится ненужная инфа и только через пару секунд идет редирект. Есть еще способы?
zanec92
@zanec92
Jan 26 2017 14:42

@spartaque

return redirect()->route('route-name');

так?

Alexander
@spartaque
Jan 26 2017 14:42
@zanec92 мне нужно на другой домен отправить
zanec92
@zanec92
Jan 26 2017 14:47

@spartaque

header('Location: http://www.example.com/');
exit;

тогда так))

Alexander
@spartaque
Jan 26 2017 14:47
@zanec92 :fire:
JhaoDa
@jhaoda
Jan 26 2017 14:50
@spartaque ну и отправляй на другой домен, проблема-то в чем?
Alexander
@spartaque
Jan 26 2017 14:51
@jhaoda так я думал может хэлпер какой есть или райт вей как сделать это
JhaoDa
@jhaoda
Jan 26 2017 14:52
@spartaque какой ещё хэлпер тебе нужен?
Alexander
@spartaque
Jan 26 2017 14:55
@jhaoda я уже его написал, думал есть встроенный или что-то еще
Murad
@Muradg
Jan 26 2017 14:56
Доброго вечера всем. У меня такой вот вопрос. Стоит задача, сделать публикацию постов в социальных сетях при добавлении новостей. Нашел готовые классы, хочу внедрить их в лару. Как лучше хранить эти классы ? В папке вендор, или где-то отдельно ?
nejtr0n
@nejtr0n
Jan 26 2017 14:57
@spartaque redirect('http://ya.ru') можешь. Если не из контроллера, тогда ->send() ещё добавить
Ivan
@Hunternnm
Jan 26 2017 14:58
@Muradg если пакеты то вендор, нет - где тебе удобно
zanec92
@zanec92
Jan 26 2017 14:59
@spartaque
тута все методы хелпера редиректа
/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php
Alexander
@spartaque
Jan 26 2017 14:59
@nejtr0n :+1: спасибо! @jhaoda Вот именно то что я хотел:)
JhaoDa
@jhaoda
Jan 26 2017 15:00
@spartaque ты чо, издеваешься? Тебе нужен хелпер для redirect()->away('http://someshit.com')?
@spartaque ты вообще подсказками IDE не пользуешься? В Блокноте код пишешь, штоле?
Alexander
@spartaque
Jan 26 2017 15:01
@jhaoda я не знал об away, че ты завелся
JhaoDa
@jhaoda
Jan 26 2017 15:02
@spartaque так я и спрашиваю, в чем ты код пишешь
Или пишешь только то, что знаешь, а что там IDE подказывает это харам, читать нельзя?
qooco
@qooco
Jan 26 2017 15:22
Всем привет! Может кто обьяснить мне философию ларавел относительно helpers методов типа config() auth() request() view() redirect() app('myservice')
JhaoDa
@jhaoda
Jan 26 2017 15:22
@qooco что именно объяснить?
qooco
@qooco
Jan 26 2017 15:25
но эти функции доступны везде
можно в модельках тянуть сервисы из контейнера
можно в других сервисах
можно во вьюхах
JhaoDa
@jhaoda
Jan 26 2017 15:25
@qooco можно. Но это не значит, что нужно бездумно пользоваться этой возможностью.
qooco
@qooco
Jan 26 2017 15:27
@jhaoda да я тоже так думал, всетаки разработчики не использую их везде, у них вполне нормальный подход (хороший в смысле)
JhaoDa
@jhaoda
Jan 26 2017 15:27
Философия простая: фрейм дал тебе молоток. Стучать по гвоздям, по голове себе или соседу — твоё дело.
qooco
@qooco
Jan 26 2017 15:28
понимаю. но появятся те кто не будет следовать правильным путем
JhaoDa
@jhaoda
Jan 26 2017 15:28
И это хорошо, в отличие от разных ЦМС, где ударить по гвоздю молотком можно, но только через прокладку в виде своей головы :)
@qooco они всегда будут, как ты не закрути гайки
Kirill Nesmeyanov
@SerafimArts
Jan 26 2017 15:29
@Dualse gitter 502 логик можно всегда посмотреть же: https://karma.laravel.su/logs.txt
qooco
@qooco
Jan 26 2017 15:29
тоже верно
Efexis
@Efexis
Jan 26 2017 17:34
Всем привет! Может кто-нибудь знает, почему при CORS запросе после удачного ответа на запрос OPTIONS не отправляется POST запрос на нужный экшен?
JhaoDa
@jhaoda
Jan 26 2017 17:35
@Efexis браузер и его консоль ошибок знают, 146%
Efexis
@Efexis
Jan 26 2017 17:36
в том то и дело, что ошибок нет
запрос OPTIONS вернул статус 200
после него должен уже отправиться сам запрос, но этого не происходит
JhaoDa
@jhaoda
Jan 26 2017 17:38
@Efexis из другого браузера пробовал? А почему не пробовал?
Efexis
@Efexis
Jan 26 2017 17:40
Еще проблема в том, чтоэтот запрос на другое api отправляется как нужно, но с мои апи проблемы
JhaoDa
@jhaoda
Jan 26 2017 17:41
@Efexis вопросы не относящиеся к ларавел обсуждаются в https://gitter.im/LaravelRUS/offtop
Efexis
@Efexis
Jan 26 2017 17:44
а если api на Laravel?
JhaoDa
@jhaoda
Jan 26 2017 17:45
@Efexis давай тогда и вопросы по серверному железу сюда, проект-то на сервере работает
API ответило? Ответило. Запретить браузеру выполнять POST запрос оно может? Нет. Всё, с какого боку тут ларавел? Почему эти элементарные вещи надо объяснять?
Efexis
@Efexis
Jan 26 2017 18:54
@jhaoda Потому что такой же запрос на другой api - работает. Сверил все заголовки - одинаковы. Авторизация работает и нормально отрабатывает 2 запроса (OPTIONS, POST). А другой контроллер - нет. Запрос с отправкой файла
fakefakefake12
@fakefakefake12
Jan 26 2017 21:14
аномалия, в модели апендится мусор, у кого-то случалось?
JhaoDa
@jhaoda
Jan 26 2017 21:15
@fakefakefake12 щито?
fakefakefake12
@fakefakefake12
Jan 26 2017 21:21
Уно.
Модель поста. http://kopy.io/0hZtE#kfSboSrnlyNQG0
Контроллер + роут http://kopy.io/ImW7v#DjvhRJgBtvdQ3v
И сейчас срин реквеста с браузера (ну или постмана) заверну (куда залить?)
http://i.imgur.com/9Fp37sY.png?1
если указать в $hidden то соотв. не апендится уже.
JhaoDa
@jhaoda
Jan 26 2017 21:25
@fakefakefake12 ну так и где мусор-то?
fakefakefake12
@fakefakefake12
Jan 26 2017 21:26
messages почему апендится? или пагинация возвращает с отношением?
JhaoDa
@jhaoda
Jan 26 2017 21:28
@fakefakefake12 м-да... доку почитать не хочешь?
@fakefakefake12 а эт чо за жуть return $this->user()->first();?
fakefakefake12
@fakefakefake12
Jan 26 2017 21:32
@jhaoda мда, косячнул. $this->user достаточно же. Можешь в доке указать? Это же про сериализацию модели?
JhaoDa
@jhaoda
Jan 26 2017 21:32
@fakefakefake12 зачем вообще аксессор для связи? Самой связи мало?
@fakefakefake12 прям во втором предложении
fakefakefake12
@fakefakefake12
Jan 26 2017 21:34
@jhaoda без аксессора не аппендится (по доке).
JhaoDa
@jhaoda
Jan 26 2017 21:34
@fakefakefake12 а ты пробовал?
Хотя чо я, видно же, что не пробовал...
fakefakefake12
@fakefakefake12
Jan 26 2017 21:35
Да, убираю ацессор Call to undefined method Illuminate\Database\Query\Builder::getUserAttribute()
JhaoDa
@jhaoda
Jan 26 2017 21:35
@fakefakefake12 Иди. Читай. Доку.
fakefakefake12
@fakefakefake12
Jan 26 2017 21:35
Ушел.
Andrei Sosnov
@atehnix
Jan 26 2017 21:36
@fakefakefake12 кстати, ты там же еще найдешь "Counting Related Models".. ;)
fakefakefake12
@fakefakefake12
Jan 26 2017 21:37
Ушел ушел :D
JhaoDa
@jhaoda
Jan 26 2017 21:38
Вот шо за люди? Сами себе создали проблему, потом в чате спрашивают, как её решить, тогда как достаточно было доку прочитать. Ну это же не рационально по затратам времени, вас самих-то не парит?
Сэкономили на чтении доки 10 минут, 20 минут потратили в чате на выслушивание моих сарказмов. Где профит?
fakefakefake12
@fakefakefake12
Jan 26 2017 21:40
@jhaoda ну почему же, я тыкнул в аппенд в доке, вижу ацессор, написал ацессор :<
Роман Сохарев
@greabock
Jan 26 2017 21:41
"я человек простой..." ©
JhaoDa
@jhaoda
Jan 26 2017 21:41
@greabock точно, только хотел написать :)
fakefakefake12
@fakefakefake12
Jan 26 2017 21:42
Ну я написал ацессор, попробовал без него - не пашет, вернул.
JhaoDa
@jhaoda
Jan 26 2017 21:42
Такие все простые, аж инфузории завидуют...
@fakefakefake12 ты читать ушел
fakefakefake12
@fakefakefake12
Jan 26 2017 21:46
$with найдено. @jhaoda спасибо, что тыкнул.
JhaoDa
@jhaoda
Jan 26 2017 21:46
@fakefakefake12 и опять не то найдено. $with включает жадную загрузку связей, не более.
А, стопэ, это же сериализация без обращения к полям
@fakefakefake12 тогда найдено то, что надо.
fakefakefake12
@fakefakefake12
Jan 26 2017 21:51
Но опять, не жадная загрузка, не апенда нет, почему мессаги грузятся?
JhaoDa
@jhaoda
Jan 26 2017 21:51
@fakefakefake12 $appends тут вообще не при делах
Если связь загружена, то при сериализации она добавится в массив, ну дал же ссылку, ё-маё
fakefakefake12
@fakefakefake12
Jan 26 2017 21:54
при добавлении messsagesCount апендится и мессаги. бага?
JhaoDa
@jhaoda
Jan 26 2017 21:54
@fakefakefake12 ты понимаешь, что у тебя для подсчёта мессаг грузятся мессаги? Или не понимаешь?
Это прям как «я же не скачивал кино, я его просто посмотрел в браузере»
fakefakefake12
@fakefakefake12
Jan 26 2017 21:56
Да, вот тут я и попался со своей тупостью, но доку перечитаю еще раз, обещаю :D
@jhaoda спасибо
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:03

Всем доброй ночи!
У меня такой вопрос, я выгружаю список партнеров по такому запросу:

$users = UserInspection::with('partner')->get()->toJson();

Но последний партнер мне приходит без связи partner, почему?

вот наглядный пример: скрин

Думал с партнером беда, удалил последнего (тестовая база), но нет, при новой выгрузке у текущего последнего(в предыдущий раз предпоследнего) тоже не было связи, хотя до удаления, все было
JhaoDa
@jhaoda
Jan 26 2017 22:05
@3gsxarakiri а ты сдампи до преобразования в json. Вангую, что партнёр будет на месте
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:09

@jhaoda

$users = UserInspection::with('partner')->get();
        dd($users->last());

скрын

К сожалению, ванга уже спит наверное

fakefakefake12
@fakefakefake12
Jan 26 2017 22:09
@atehnix можно посчитать кол-во релейшенов к моделе. Метод getRelationExistenceCountQuery в Relation (верно же?)
JhaoDa
@jhaoda
Jan 26 2017 22:10
@fakefakefake12 в доке написано, как считать элементы в связи
@3gsxarakiri 146% в БД есть партнер с таким номером? Скрин показывай, а то чот не верю
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:11
@jhaoda не, и тут с процентами не прокатило. Какой именно скрин интересует?
ну я в плане, у меня нет дублей, в текущих таблицах
JhaoDa
@jhaoda
Jan 26 2017 22:12
@3gsxarakiri что не прокатило? Я спрашиваю — ты точно уверен, что в БД есть партнер с номером 440? На 146% уверен? Два раза проверил? Скрин из БД покажешь? Дальше разъяснять?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:15

да с легкостью покажу:)

скрын UserInspection

скрын Partner

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

JhaoDa
@jhaoda
Jan 26 2017 22:17
@3gsxarakiri ок. Что дебагбар покажет в плане запросов?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:19
@jhaoda не стоял на проекте, пару мин, сейчас поставлю
Andrei Sosnov
@atehnix
Jan 26 2017 22:21
@fakefakefake12 я тебе даже конкретный заголовок из доки выше привел, где написано как кол-во получить)
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:23
Andrei Sosnov
@atehnix
Jan 26 2017 22:23
@fakefakefake12 мог бы даже конкретную цитату примера из доки привести, но говорят, что это не педагогично.. :)
Dave
@aios
Jan 26 2017 22:23
@3gsxarakiri читаю скрин бара - и думаю что сейчас посмотрю фотки какого то заведения.
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:24
@aios привлекаю внимание к вопросу ;)
JhaoDa
@jhaoda
Jan 26 2017 22:26
@3gsxarakiri я так понимаю, что у тебя есть юзеры 423 и 424 с партнерами 441 и 442? Они по иным условиям в выборку не попадают?
Короче, проблема всегда в последнем элементе коллекции, у него пустая связь?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:28
Именно так
JhaoDa
@jhaoda
Jan 26 2017 22:28
@3gsxarakiri версия ларавел?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:28
именно с последним элементом коллекции
@jhaoda 5.3.*
JhaoDa
@jhaoda
Jan 26 2017 22:30
@3gsxarakiri * это сколько?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:31
@jhaoda 5.3.24
JhaoDa
@jhaoda
Jan 26 2017 22:33
@3gsxarakiri ну может баг какой? Обновиться не вариант?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:34
@jhaoda сейчас обновлю, проверю)
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:45
@jhaoda обновился до последней, ситуация не изменилась, к сожалению :(
JhaoDa
@jhaoda
Jan 26 2017 22:46
@3gsxarakiri на других моделях со связями повторяется?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:47
@jhaoda только начал работу над проектом и пока другого функционала и тем более моделей нет, увы. Только эта связка пока что
Arsen Soroka
@arsen-s
Jan 26 2017 22:51
@3gsxarakiri попробуй вытащить партнеров со связью user
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 22:55
@arsen-s о, не подумал даже. Но увы, точно такая же ситуация
@arsen-s ->first() идет со связью, ->last() - без
если надо могу скриншотами показать
Arsen Soroka
@arsen-s
Jan 26 2017 22:58
запости код моделей полностью
Роман Сохарев
@greabock
Jan 26 2017 22:59
только пастбин, пожалуйста, ради всех священных коров индии
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:02
Вот, думаю коровки будут счастливы)
Partner
UserInspection
Роман Сохарев
@greabock
Jan 26 2017 23:05
детектид
return $this->belongsTo(Partner::class, 'id');
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:05
а можно небольшие пояснения?
Роман Сохарев
@greabock
Jan 26 2017 23:07
а не...
хотя да
короче
это косяк
убирай id
грубо говоря, если бы это был join, то он выглядел бы как inspection.id = partner.id
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:11
а что с ним не так?:)
так или иначе, проблема не в нем, так как убрав, ситуация осталась на месте
Роман Сохарев
@greabock
Jan 26 2017 23:12
имена полей таблички inspections в студию
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:12
так данная табличка не участвует в запросах, с которыми возникает проблема
Роман Сохарев
@greabock
Jan 26 2017 23:14

@3gsxarakiri да ладно???

UserInspection::with('partner')->get();

а это я написал, что ли?

Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:14
ну просто у меня есть еще сама по себе таблица inspections, а тут указана userinspections вот я и не так понял)
все поля я внес в fillable и они уже есть в листингах выше
кроме timestamps
Роман Сохарев
@greabock
Jan 26 2017 23:15
@3gsxarakiri я не буду играть с тобой в угадайку
Arsen Soroka
@arsen-s
Jan 26 2017 23:16
@3gsxarakiri предлагаю залить на c9, только хз можно ли там разсшарить всем
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:17
да мне не трудно указать, просто отметил, что они есть выше
поля user_inspection = 'id','inspection_id', 'partner_id', 'status', 'disable_id', 'comment'
поля partner = 'id','uid', 'login', 'balance', 'hold', 'orders', 'approve', 'fail', 'done'
Arsen Soroka
@arsen-s
Jan 26 2017 23:21
@3gsxarakiri а возможно что ты смотришь в старую таблицу/базу?
Роман Сохарев
@greabock
Jan 26 2017 23:21
теперь, поясняю популярно
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:22
@arsen-s да не, это исключено, у меня 1 база, а таблицы я обновляю постоянно (удаляя старые), по мере внесения изменений. Поэтому эта инфа актуальная и дубликатов нет
Arsen Soroka
@arsen-s
Jan 26 2017 23:24
@3gsxarakiri тогда последние
dd(Partners::where('id', $id)->get());
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:24
их 424 штуки :-)
но я каждую ручками облазил и только в последнем элементе коллекции нет связи :(
@arsen-s могу сделать скриншот первого элемента и последнего, или предпоследнего и последнего или любого из 424 на выбор)
Роман Сохарев
@greabock
Jan 26 2017 23:28

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

restaurants
| id | user_id | title |
users
| uuid | name |

class Restaurant extends Eloquent {
   public function owner()
   {
        return $this->belongsTo(User::class, 'user_id', 'uuid');
   }
}

а теперь, смотря на мой пример, найди косяк здесь

return $this->belongsTo(Partner::class, 'id');
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:31

@greabock Благодарю за пример, но, думаю, если бы у меня была проблема с настройкой связи, то я бы вообще не получал их, но я получаю, но все кроме последнего.
дабы проверить теорию я внес изменение:

return $this->belongsTo(Partner::class, 'partner_id', 'id');

Ситуацию оно не решило, я все также получаю все, кроме последнего

Роман Сохарев
@greabock
Jan 26 2017 23:32
просто до этого, ты вообще не то получал и неизвестно как
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:33
@greabock да вроде я получал все что нужно было получать, по всем юзерам, кроме того юзера, который идет последним в списке. Он, по неведомой мне причине идет без связи
Роман Сохарев
@greabock
Jan 26 2017 23:34
@3gsxarakiri ты получал вот это userinspections.id = partners.id, не надо мне сказки рассказывать )
JhaoDa
@jhaoda
Jan 26 2017 23:35
@3gsxarakiri у тебя номера юзеров и партнеров почти идентичны
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:36
@jhaoda особенность таблички, так как она новая, со временем партнеры в юзеринспекций будут повторяться
JhaoDa
@jhaoda
Jan 26 2017 23:36
@3gsxarakiri так же, по скрину дебагбара видно, что ты выбирал все записи и последний юзер был без партнёра. А если первых 10 выбрать? Или с 20-го по 40-го?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:37
@jhaoda сейчас проверю
Roman
@fearrr
Jan 26 2017 23:37
@jhaoda а это не касается ларки?
JhaoDa
@jhaoda
Jan 26 2017 23:37
@fearrr нет
Roman
@fearrr
Jan 26 2017 23:38
@jhaoda Ок
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:38

@jhaoda

$users = UserInspection::with('partner')->get()->take(10)->toJson();

работает превосходно, все они приходят с полными данными.

Roman
@fearrr
Jan 26 2017 23:38
Вероятность ответа там ~= 0
JhaoDa
@jhaoda
Jan 26 2017 23:39
@3gsxarakiri вывод? Дело совсем не коллекции и её последнем элементе
@3gsxarakiri отсортируй в обратном порядке и выбери первую десятку. Первая запись должна быть без партнёра
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:43

@jhaoda

$users = UserInspection::with('partner')->orderBy('id', 'desc')->get()->take(10)->toJson();

Отработало идеально, так что последняя запись, в данном случае является первой и приходит корректно.

JhaoDa
@jhaoda
Jan 26 2017 23:43
@3gsxarakiri точно она?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:43
@jhaoda точно
JhaoDa
@jhaoda
Jan 26 2017 23:43
@3gsxarakiri юзер 442?
@3gsxarakiri а если с этой обратной сортировкой всё выбрать, то последняя запись с партнёром?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:44
@jhaoda именно
@jhaoda да, если отсортировать, то все работает хорошо
только вот почему так? о__О
Роман Сохарев
@greabock
Jan 26 2017 23:45
не работает оно хорошо
точнее работает
потому, что и до этого работало
@3gsxarakiri короче, инспектируй свои таблички теперь внимательно, и осознай, что у этих твоих "сломанных" юзер-инспекций нет на самом деле партнеров.
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:47
@greabock если что, я удалил предложенные тобой изменения. Вернув к тому что было. Так что проблему решило именно "перевертывание", а не внесение изменений в модельки
@greabock у меня не могут быть созданы юзер-инспекции без партнеров, а для каждой юзер-инспекции партнер уникален и повторяться не имеет права
Роман Сохарев
@greabock
Jan 26 2017 23:47

если что, я удалил предложенные тобой изменения

я сворачиваюсь

Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:48
@jhaoda спасибо, что подвел меня к решению проблемы! Но все также непонятно, почему коллекция или query билдер, себя так странно ведет
@jhaoda спасибо!
JhaoDa
@jhaoda
Jan 26 2017 23:49
@3gsxarakiri ты первый, кто на это жалуется
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:49
а бот спит... ну ладно
JhaoDa
@jhaoda
Jan 26 2017 23:51
@3gsxarakiri все эти таблицы в одной БД? Или схеме, если это pg?
Vadim Milevskiy
@3gsxarakiri
Jan 26 2017 23:51
@jhaoda ага, в одной, mysql
Роман Сохарев
@greabock
Jan 26 2017 23:53
@jhaoda имхо, тут проблема только в прокладке