Size: a a a

Laravel для начинающих

2020 September 20

AO

Aleksandr Opekunov in Laravel для начинающих
whereHas
источник

AO

Aleksandr Opekunov in Laravel для начинающих
$posts = App\Post::whereHas('comments', function (Builder $query) {
   $query->where('content', 'like', 'foo%');
})->get();
источник

AO

Aleksandr Opekunov in Laravel для начинающих
// Retrieve posts with at least ten comments containing words like foo%...
$posts = App\Post::whereHas('comments', function (Builder $query) {
   $query->where('content', 'like', 'foo%');
}, '>=', 10)->get();
источник

KK

Konstantin Kelle in Laravel для начинающих
Спасибо большое! Сейчас проверю
источник

KK

Konstantin Kelle in Laravel для начинающих
Вааау, большое спасибо, работает!
источник

A

Adel in Laravel для начинающих
Konstantin Kelle
Вааау, большое спасибо, работает!
и матом необязательно ругаться, да? :)
источник

P

PSYTRGLES in Laravel для начинающих
но ведь помогло же? )))
источник

A

Adel in Laravel для начинающих
PSYTRGLES
но ведь помогло же? )))
когда он прошлый раз ругался - никто не помог
источник

A

Adel in Laravel для начинающих
а щас вроде культурно пообщался...
источник

VY

Vladimir Yefremov in Laravel для начинающих
Привет всем!

что-то туплю, не могу построить казалось бы простой алгоритм :(
есть коллекция массивов $postsItems, и другая коллекция $newPostsLink - только ссылки, с заведомо меньшим кол-вом элементов;
мне нужно отфильтровать в $postsItems только те элементы, у которых имеется такая же ссылка, как в $newPostsLink;
пробую так (но не то)
        $newPosts = $postsItems->filter(function ($item) use($newPostsLink) {
           return $item['link'] === $newPostsLink->whereIn('value' , $item['link']);
       });

возвращает пустую коллекцию; в $newPostsLink нет ключа 'value', только цифровые индексы, но whereIn без значения не работает - не знаю что туда поставить....
источник

P

PSYTRGLES in Laravel для начинающих
whereIn возвращает коллекцию, а у тебя со строкой сравнение
источник

VY

Vladimir Yefremov in Laravel для начинающих
PSYTRGLES
whereIn возвращает коллекцию, а у тебя со строкой сравнение
ну да, я ж согласен , что это неправильно

мне нужно отфильтровать в $postsItems только те элементы, у которых имеется такая же ссылка, как в $newPostsLink
и вернуть их в $newPosts
источник

V

Vladyslav in Laravel для начинающих
Vladimir Yefremov
Привет всем!

что-то туплю, не могу построить казалось бы простой алгоритм :(
есть коллекция массивов $postsItems, и другая коллекция $newPostsLink - только ссылки, с заведомо меньшим кол-вом элементов;
мне нужно отфильтровать в $postsItems только те элементы, у которых имеется такая же ссылка, как в $newPostsLink;
пробую так (но не то)
        $newPosts = $postsItems->filter(function ($item) use($newPostsLink) {
           return $item['link'] === $newPostsLink->whereIn('value' , $item['link']);
       });

возвращает пустую коллекцию; в $newPostsLink нет ключа 'value', только цифровые индексы, но whereIn без значения не работает - не знаю что туда поставить....
        $newPosts = $postsItems->filter(function ($item) use($newPostsLink) {
           return $newPostsLink->where('value' , $item['link'])->count() > 0;
       });
источник

VY

Vladimir Yefremov in Laravel для начинающих
состроил такого монстрика
        $newPosts = $postsItems->filter(function ($item) use ($newPostsLink) {
           $thisItem = $item['link'];
           return $thisItem === $newPostsLink->first(function ($value) use ($thisItem) {
                   return $value === $thisItem;
               });
       });

но мне кажется можно проще
что скажете?
источник

P

PSYTRGLES in Laravel для начинающих
https://laravel.com/docs/8.x/collections#available-methods
Открываем доку коллекций и ищем подходящий метод, например contains или intersectByKeys
источник

VY

Vladimir Yefremov in Laravel для начинающих
PSYTRGLES
https://laravel.com/docs/8.x/collections#available-methods
Открываем доку коллекций и ищем подходящий метод, например contains или intersectByKeys
разумеется, я все пересмотрел....
написал же "туплю" :)
что скажешь об этом варианте? https://t.me/laravel_web/324234
источник

VY

Vladimir Yefremov in Laravel для начинающих
Vladyslav
        $newPosts = $postsItems->filter(function ($item) use($newPostsLink) {
           return $newPostsLink->where('value' , $item['link'])->count() > 0;
       });
тоже возвращает пустой массив
источник

V

Vladyslav in Laravel для начинающих
а что внутри
$newPostsLink
можно дд увидеть?)
источник

V

Vladyslav in Laravel для начинающих
там же нет ключей
источник

V

Vladyslav in Laravel для начинающих
и работать надо с ним как с массивом?)
источник