• Как отсортировать по смежной таблице Laravel?

    @Fear1 Автор вопроса
    Получилось сделать через фильтр следующим образом:

    Card::leftJoin('comments', 'cards.id', '=', 'comments.card_id')
            ->where('comments.type', 'comment')
            ->select('cards.*')
            ->orderBy('comments.created_at', 'desc')
            ->groupBy('comments.id')
            ->get()
            ->filter(function($item, $key) {
                if(!in_array($item->id, $this->alreadySelectedCards)) {
                    $this->alreadySelectedCards[] = $item->id;
                    return true;
                }
            });


    Но это костыль и, мне кажется, есть нормальный способ решить такую тривиальную задачу...
    Ответ написан
    Комментировать
  • Как сделать удаления записи доступной автору записи?

    @Fear1
    Сделайте эту кнопку доступной только в том случае, если авторизованный пользователь совпадает с автором статьи.
    Ответ написан
  • Как вытащить переменную в js через парсер на php?

    @Fear1
    $str = "<script>var RB_RID = 'recordrock'; var RB_GENRE = 'rock'; var RB_LINK = 'http://air2.radiorecord.ru:805/rock_320'; var RB_TITLE = \"Record Rock Radio\";</script><script async src=\"https://www.radiobells.com/js/embed.js\" charset=\"UTF-8\"></script>";
    
    preg_match('/RB_LINK.*\'(.*)\'/', $str, $res);
    echo $res[1]; // ваша ссылка


    1. Ищем RB_LINK RB_LINK
    2. После RB_LINK идет любое количество любых символов, кроме перевода строки .*
    3. В подмаске, которая находится между одинарных кавычек, ищем любое количество любых символов.\'(.*)\'

    4. В переменную $res получаем массив, где [1] элемент является первой подмаской.
    Ответ написан
    Комментировать