These are chat archives for LaravelRUS/chat

10th
Jul 2017
Max Krestovskiy
@mkrestovskiy
Jul 10 2017 09:17

@prog-man

->where('slug', 'contacts | about');

так попробуй

verdexy
@verdexy
Jul 10 2017 09:24

projct1
@projct1
Jul 10 2017 11:30
подскажите как сделать так, чтобы кастомные поля модели, засеченные в процессе работы, игнорировались при обновлении:
$order = Order::first();
$order->custom_field = 123;
$order->name = null;
//некоторые действия
$order->save();
ща выдаёт конечно же ошибку Unknown column 'custom_field'
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:31
@rorc объяви их
в модели
projct1
@projct1
Jul 10 2017 11:31
?
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:32
@rorc ты знаешь как в php декларируются поля?
в качестве альтернативного варианта - используй мутаторы ёлки
projct1
@projct1
Jul 10 2017 11:32
мне custom_field нужно для использования в разных классах, а при апдейте и сохранении надо игнорить его
если тока в $guarded добавить думаю
так не канает тоже
по идеи лара должна брать тока original атрибуты
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:35
@rorc я уже тебе привёл в пример два варианта решения проблемы
projct1
@projct1
Jul 10 2017 11:35
@SerafimArts я ваще не понял тебя
или ты не понял что мне надо
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:37
@rorc читай основы, что я могу сказать:
1) http://php.net/manual/ru/language.oop5.properties.php
2) https://laravel.com/docs/5.4/eloquent-mutators
=)
projct1
@projct1
Jul 10 2017 11:38
@SerafimArts ты не понял нифига)
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:38
@rorc так задай вопрос нормально =)
projct1
@projct1
Jul 10 2017 11:40
@SerafimArts ща

@SerafimArts есть событие обновления сверки, где мне надо сохранить сумму

class ReviseUpdating
{
    public function __construct(Revise $revise, array $data = [])
    {
        $revise->total_old = $revise->total;
    }
}

есть листенер, который обнуляет поля при обновлении сверки, включая сумму total

class CleanReviseFields
{
    public function handle(Updating $event)
    {
        if (in_array(request('status.parent_id'), [Revise::STATUS_CANCEL, Revise::STATUS_MONITOR])) {
            $event->revise->comission_fixed_person_approved = $event->revise->sum_check = $event->revise->total =
                $event->revise->who_said_sum_check = $event->revise->amount = null;
        }
    }
}

есть ещё один листенер, который запускается после обновления сверки, которому нужна эта сумма total, которая может обнулиться
поэтому мне надо её сохранять где-то

поэтому мне это поле total_old нужно временно
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:46
@rorc во-первых, это не отменяет того, что я уже написал
т.е. оба варианта тебе подходят
projct1
@projct1
Jul 10 2017 11:46
странно, что лара при сохранении берёт не оригинальные атрибуты
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:46
во-вторых, т.е. не нужно старое поле, т.к. оно и так сохраняется в моделях ёлки
а точнее в секции оригинальных значений
т.е. у моделей и так сохраняются старые значения
@rorc не странно, оригинальных атрибутов может не существовать
их нет в случае создания чистой модели через new
это тебе не доктрина, где все поля декларируются заранее
projct1
@projct1
Jul 10 2017 11:49
@SerafimArts ага, в оригинальных значениях моё кастомное поле total_old не появляется, но почему тогда лара берёт в учёт это поле при апдейтинге?
Ваня Devium
@webdevium
Jul 10 2017 11:49
@SerafimArts @rorc Мое видение:
  • либо originalAttributes
  • либо fillable
в любом случае при сохранении придется обратиться к какому из этих массивов
projct1
@projct1
Jul 10 2017 11:50
@webdevium не понятно что ты имеешь в виду
в идеали был бы такой метод setRawAttribute, чтобы как бы временно сетился и при обновлении не участвовал
Ваня Devium
@webdevium
Jul 10 2017 11:51
@rorc before saving match current attributes with original attributes
projct1
@projct1
Jul 10 2017 11:53
@webdevium 😒
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:53
@rorc потому что они существуют только для того, что бы делать дифф и оценивать что появилось нового
projct1
@projct1
Jul 10 2017 11:53
придётся реально создавать отдельное привейт проперти для этого поля и сетить/гетить через методы...
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:54
ты "появил" новое поле, значит дифф покажет, что именно его и надо сохранить
Ваня Devium
@webdevium
Jul 10 2017 11:54
@SerafimArts сирил, объясни ему то, что я написал
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:54
@webdevium не, мне влом
я уже и так 3 раза рассказал как лучше решить его проблему
Virp
@Virp
Jul 10 2017 11:55
мне кажется просто просчет в архитектуре, раз приходится в модель запихивать промежуточные расчеты, имхо конечно
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:55
3ий вариант - использовать сервис или VO для этих действий, а не хранить эту лабудень в модели, я даже не расмматриваю, так как в случае @rorc - это уже магия :D
Ваня Devium
@webdevium
Jul 10 2017 11:55
тут это слово не уместно
projct1
@projct1
Jul 10 2017 11:56
@SerafimArts VO?
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:56
ага, POPO VO
:D
Ваня Devium
@webdevium
Jul 10 2017 11:56
события еще можно))
Virp
@Virp
Jul 10 2017 11:56
@SerafimArts $GLOBALS же :smile:
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:56
POPO === POJO + PHP
Ваня Devium
@webdevium
Jul 10 2017 11:56
короче, можно как угодно решить этот вопрос
projct1
@projct1
Jul 10 2017 11:57
@SerafimArts что такое VO?
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:57
читай как POPO
projct1
@projct1
Jul 10 2017 11:57
@SerafimArts ок
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:57
=)
гуглить на тему "POJO"
projct1
@projct1
Jul 10 2017 11:58
@SerafimArts вроде шаблон проектирования такой есть, чисто как бы объект без методов
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 11:58
шаблон...
DTO это называется :D
забей
я тебя могу закидать аббревиатурами, но это не отменяет того, что тебе достаточно просто создать одно поле
projct1
@projct1
Jul 10 2017 12:00
@SerafimArts чисто в модель добавить это ты им в виду?
    private $totalOld;

    public function setTotalOld($total)
    {
        $this->totalOld = $total;
    }

    public function getTotalOld()
    {
        return $this->totalOld;
    }
Yaroslav
@CrazyFreeMan
Jul 10 2017 12:03
Добрый день, посоветуйте пакет для мультиязычности, пробовал https://github.com/themsaid/laravel-multilingual приходится городить костыли для веб все ок а вот если для api передавать то не работает (нюансы casts)
KarmaBot
@KarmaBot
Jul 10 2017 12:03
@CrazyFreeMan даров!
Ваня Devium
@webdevium
Jul 10 2017 12:04
@rorc именно так
@CrazyFreeMan руками сам написать не хочешь?
Yaroslav
@CrazyFreeMan
Jul 10 2017 12:06
@webdevium можно попробовать. Хочу за модуль взять таки JSON, есть что посмотреть с примеров?
Ваня Devium
@webdevium
Jul 10 2017 12:06
@CrazyFreeMan в доке же описано все, что тебе надо
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:33
Добрый вечер. Я делаю теги к статьям через отношение многие-ко-многим. Делаю по видео инструкции с laracasts. Проблема заключается в том что я не могу вывести эти теги в @foreach будто отношения не работают(ничего не выводится(без ошибок)), но если использовать tinker $article->tags->toArray(); то теги выводятся. Думаю много кто работал с этим отношениями так что надеюсь на помощь.
KarmaBot
@KarmaBot
Jul 10 2017 13:33
Hello, @fanblacksky_twitter!
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:33
Контроллер выше
OsAlex
@OsAlex
Jul 10 2017 13:36
@fanblacksky_twitter лучше выложить модели. как в них прописаны отношения?
JhaoDa
@jhaoda
Jul 10 2017 13:37
@fanblacksky_twitter у нас тут принято код показывать оформленным кодом в чате, а не файлы с ним кидать
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:38
@jhaoda Извини, не нашёл как код вставлять.
JhaoDa
@jhaoda
Jul 10 2017 13:38
@fanblacksky_twitter потому что правила читать не стал
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:40
class Server extends Model
{
    public function tags()
    {
        return $this->belongsToMany('App\Tag')->withTimestamps();
    }
}
class Tag extends Model
{
    public function servers()
    {
        return $this->belongsToMany('App\Servers');
    }
}
JhaoDa
@jhaoda
Jul 10 2017 13:42
@fanblacksky_twitter только ВАЖНЫЙ код, пожалуйста. Без namespace App; и прочего. Не надо чат забивать
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:43
Если бы проблема была с моделями то думаю не получилось бы получить данные через tinker
@jhaoda спасибо буду знать
KarmaBot
@KarmaBot
Jul 10 2017 13:43
Спасибо (+1) для @jhaoda принято! Текущая карма +1561.
JhaoDa
@jhaoda
Jul 10 2017 13:43
@fanblacksky_twitter а прям сейчас что мешает отредактировать?
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:45
@jhaoda отредактировал.
JhaoDa
@jhaoda
Jul 10 2017 13:45
@fanblacksky_twitter отлично
@fanblacksky_twitter ещё можно нажать Ctrl+Shift+m и почитать про маркдаун
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:47
@jhaoda уже нашёл.
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 13:54
Так что по моему вопросу? Сам я уже разобраться не могу в чём дело.
Oleg Smirnov
@soeOleg
Jul 10 2017 13:58
@fanblacksky_twitter при чём тут модель Server и статьи? внимательно посмотри на это запись $article->tags->toArray(); и твою Server::select(['id', 'name'])->get();
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 14:00
@soeOleg я ошибся $server->tags->toArray(); Из образца скопировал случайно.
Oleg Smirnov
@soeOleg
Jul 10 2017 14:02
@fanblacksky_twitter и ещё раз посмотри. может там чего-то не хватает. (в твоём запросе)
Andrei Sosnov
@atehnix
Jul 10 2017 14:02
@fanblacksky_twitter почему return $this->belongsToMany('App\Servers'); ?
У тебя же модель Server, а не Servers.
Ваня Devium
@webdevium
Jul 10 2017 14:02
@atehnix ухты, а я думал ты умер уже :)
Andrei Sosnov
@atehnix
Jul 10 2017 14:03
@webdevium гы) Какой ты добрый))
Ваня Devium
@webdevium
Jul 10 2017 14:03
@atehnix я такой :) Но я честно рад тебя видеть
Dmitriy Davletgareev
@fanblacksky_twitter
Jul 10 2017 14:04
@atehnix исправил, но всё равно не работает.
verdexy
@verdexy
Jul 10 2017 14:11
Здравствуйте. Почему-то в контроллер передается нулевая переменная
```
KarmaBot
@KarmaBot
Jul 10 2017 14:11
@verdexy, и тебе привет ;)
verdexy
@verdexy
Jul 10 2017 14:13
Route::get('site/unbind/{vhid}/{domain}' , 'SiteController@UnbindAlias');
Контроллер:
      public function UnbindAlias($domain,$vhid)
        {
            $this->CheckDomainStatus($domain);
        }

Что выдает Laravel:
at SiteController->CheckDomainStatus(null)

in SiteController.php (line 163)
at SiteController->UnbindAlias('10', '42')

verdexy
@verdexy
Jul 10 2017 14:18
Проблема решена
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 14:20
@verdexy ээээ, кажется ты потерял PSR, бро =)
verdexy
@verdexy
Jul 10 2017 14:21
А какой именно стандарт нарушается?
JhaoDa
@jhaoda
Jul 10 2017 14:22
@verdexy все. У тебя — все.
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 14:22
@verdexy первый по крайней мере
@verdexy второй тоже
пробелы
JhaoDa
@jhaoda
Jul 10 2017 14:23
Сам факт вопроса как бы уже о много говорит. Человек не знает, за что отвечает тот или иной стандарт, хотя бы первые четыре
Stas
@ASYOU99
Jul 10 2017 14:27
Все доброго дня. Подскажите: пробую через постман обратится к апишке, а мне пишет что контроллера не существует (метод гет просто получить в ответ 1), хотя проверил и в роутах он есть и название правильно написано. Куда копать где что смотреть? Обращаюсь к другим классам ранее созданным в проекте (другими людьми) у них все ок.
KarmaBot
@KarmaBot
Jul 10 2017 14:27
Приветствую тебя, @ASYOU99!
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 14:29
@ASYOU99
1) Ты уверен, что знаешь PHP и PSR-4 в частности?
2) Если да, то composer dump-autoload
3) Или накрайняк почисти opcache (учитывай, что опкеш fpm и cli - разные)
JhaoDa
@jhaoda
Jul 10 2017 14:29
@ASYOU99 а реально файл с классом есть?
Stas
@ASYOU99
Jul 10 2017 14:30
@jhaoda да есть
@SerafimArts
1)Что то знаю что то нет я только учусь
2) Не помогло остальные то классы как то подключает
3) Этого не знаю как сделать и вроде opcach не стоит это локальный сервак
verdexy
@verdexy
Jul 10 2017 14:37
@jhaoda Про PSR понял, буду исправлять. Спасибо.
KarmaBot
@KarmaBot
Jul 10 2017 14:37
Спасибо (+1) для @jhaoda принято! Текущая карма +1562.
Kirill Nesmeyanov
@SerafimArts
Jul 10 2017 14:42
@ASYOU99 если есть сомнения в п.1, тогда смотреть в сторону PSR-4 за всеми вытекающими (есть незнакомое слово - гугл\мануал)
verdexy
@verdexy
Jul 10 2017 15:33

Почему-то получаю ошибку Call to undefined function

public function unbindAlias($domain,$vhid)
        {
            //check all requirements
        if  (
            $this->CheckDomainStatus($domain) !=='alias'
            OR !isDomainBelongstoUserbyID ($vhid)
        )
        {return false;} 
}

Сама функция:

public function isDomainBelongstoUserbyID ($id) {
        $userid = Auth::id();
        $check = Domain::where('userid',$userid)
            ->where('unid',$id)
            ->count();
        if ($check===0) {return false;}
        else {return true;}
    }
JhaoDa
@jhaoda
Jul 10 2017 15:36
@verdexy Call to undefined function какая? Тут телепатов нет
А, таки вижу.
@verdexy иди-ка ты РНР изучать, короче
@verdexy как понял меня? Приём.
verdexy
@verdexy
Jul 10 2017 15:38
Я не понимаю, в чем ошибка - т.к. функция isDomainBelongstoUserbyID объявляется ДО той функции, в которой она используется
JhaoDa
@jhaoda
Jul 10 2017 15:39
@verdexy это у тебя методы класса?
verdexy
@verdexy
Jul 10 2017 15:39
Да
Это методы класса
Ваня Devium
@webdevium
Jul 10 2017 15:39
хихи) невнимательность тебя погубит
JhaoDa
@jhaoda
Jul 10 2017 15:39
@verdexy ну вот, иди изучать РНР, что бы знать, как вызывать методы класса
@verdexy как понял меня? Приём.
Ваня Devium
@webdevium
Jul 10 2017 15:40
А OR еще до сих пор юзают?
Virp
@Virp
Jul 10 2017 15:40
@verdexy $this->isDomainBelongstoUserbyID ($vhid)
verdexy
@verdexy
Jul 10 2017 15:40
тьфу. $this->isDomainBelongstoUserbyID()

А OR еще до сих пор юзают?

А вместо OR юзают | ?

JhaoDa
@jhaoda
Jul 10 2017 15:41
@verdexy парень, это чат по ларавел. Не по основам РНР и не по поиску опечаток в твоём коде. Если ты этого не понимаешь...
Ваня Devium
@webdevium
Jul 10 2017 15:41
||
Темычу хоть спасибо скажи
verdexy
@verdexy
Jul 10 2017 15:44
@virp спасибо
KarmaBot
@KarmaBot
Jul 10 2017 15:44
@verdexy, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
verdexy
@verdexy
Jul 10 2017 15:44
Спасибо, @Virp
KarmaBot
@KarmaBot
Jul 10 2017 15:44
Спасибо (+1) для @Virp принято! Текущая карма +3.
Ваня Devium
@webdevium
Jul 10 2017 15:44
не тому Темычу
JhaoDa
@jhaoda
Jul 10 2017 15:44
@webdevium обиделся :)
Virp
@Virp
Jul 10 2017 15:44
:smile:
Ваня Devium
@webdevium
Jul 10 2017 15:44
@jhaoda :trollface: дети))
verdexy
@verdexy
Jul 10 2017 15:45
Спасибо, @webdevium
KarmaBot
@KarmaBot
Jul 10 2017 15:45
Спасибо (+1) для @webdevium принято! Текущая карма +163.
JhaoDa
@jhaoda
Jul 10 2017 15:45
@webdevium да не надо мне спасибов, парень идёт на бан
Ваня Devium
@webdevium
Jul 10 2017 15:45
@jhaoda пожалей
Zlatoslav Desyatnikov
@zlodes
Jul 10 2017 15:45
@webdevium нееш подумой :D
JhaoDa
@jhaoda
Jul 10 2017 15:46
@webdevium ну вот ты и бери шефство. Продолжит в том же духе через пару недель — оба в бан :)
@webdevium или хотя бы узнай у него, как ему шторм показывает ошибку, мол, неизвестный метод, а он это сообщение игнорит. А вообще... шторм ли у него?
Может, он ярый хипстер, атом там или саблю мерзкую юзает...
Ваня Devium
@webdevium
Jul 10 2017 15:48
notepad++ рулит
@verdexy ты на чем сидишь?
verdexy
@verdexy
Jul 10 2017 15:49
У меня Ubuntu 16.04 + PHPStorm 2017.
Ваня Devium
@webdevium
Jul 10 2017 15:49
ооо, это хорошо
JhaoDa
@jhaoda
Jul 10 2017 15:52
@verdexy в оффтопе спрашивай
verdexy
@verdexy
Jul 10 2017 15:57
@jhaoda Про бан понял, вопросов связанных с собственной невнимательностью постараюсь больше не задавать)))
KarmaBot
@KarmaBot
Jul 10 2017 15:58
@Batisska, привет =)
@Batisska даров!
Привет, @Batisska! Проходи, присаживайся. В ногах правды нет :)
Zlatoslav Desyatnikov
@zlodes
Jul 10 2017 15:59
@KarmaBot, Оо
Андрианов Сергей
@Batisska
Jul 10 2017 15:59
че за как ссылку вставить?
Zlatoslav Desyatnikov
@zlodes
Jul 10 2017 15:59
@Batisska MarkDown (в редакторе M-стрелка-вниз справа), ты картинку пытаешься вставить. Изучи синтаксис.
Denis-olegovich
@Denis-olegovich
Jul 10 2017 16:01
Вопрос такой, правильно ли я понял , когда мы устанавливаем связь между таблицами в миграции, то эту связь надо подтверждать в моделях , что бы работать с данными из например:" двух таблиц" или я не правильно понял,на видите на путь правильный.
Zlatoslav Desyatnikov
@zlodes
Jul 10 2017 16:01
@Denis-olegovich читай доку про Relations и внешние ключи.
JhaoDa
@jhaoda
Jul 10 2017 16:01
@Denis-olegovich в миграциях нет связей. Но если ты называешь связями внешние ключи, то да.
Zlatoslav Desyatnikov
@zlodes
Jul 10 2017 16:02
@Batisska не заворачивай в бэктики свою ссылку
Denis-olegovich
@Denis-olegovich
Jul 10 2017 16:02
@jhaoda ага ,понял,спасибо
KarmaBot
@KarmaBot
Jul 10 2017 16:02
Спасибо (+1) для @jhaoda принято! Текущая карма +1563.
Андрианов Сергей
@Batisska
Jul 10 2017 16:02
@zlodes title вот пример оттуда и копировал
Zlatoslav Desyatnikov
@zlodes
Jul 10 2017 16:03
@Batisska ну, ты пытаешься как код ссылку отправить. а надо без бэктиков (косой апостроф).
JhaoDa
@jhaoda
Jul 10 2017 16:03
@Batisska иди в другом месте потренируйся
Zlatoslav Desyatnikov
@zlodes
Jul 10 2017 16:04
@jhaoda да, неплохая идея )
Andrey
@daaner
Jul 10 2017 21:09
@zlodes @jhaoda да ладно) а тут нельзя разве? у нас тут периодически оффтоп бывает)