Size: a a a

2019 December 26

v

vladimir in OctoberCMS
Это же уже года 3-4, даже больше, уже не припомню когда появились.  $$b, ${$b}, ${‘a’}.
источник

v

vladimir in OctoberCMS
Раньше байты экономили так )) ${0} частая штука была)
источник

NN

Nikita Nafranets ⎈ in OctoberCMS
ребят, у меня есть полиморфная связь m2m модели tags с несколькими моделями, в моделях есть поле published. Как зафетчить все теги которые привязаны к моделям с полем published = true?
источник

K

Konstantin in OctoberCMS
Nikita Nafranets ⎈
ребят, у меня есть полиморфная связь m2m модели tags с несколькими моделями, в моделях есть поле published. Как зафетчить все теги которые привязаны к моделям с полем published = true?
whereHas пробовал?
источник

NN

Nikita Nafranets ⎈ in OctoberCMS
если бы Post::whereHas('tags') оно бы понятно, но как искать Tags::whereHas(???)
источник

v

vladimir in OctoberCMS
Post::with([‘tags’ => static function($query) {
$query->wherePublished(true);
}])->get();


Может как-то так получится, правда жадная загрузка
источник

NN

Nikita Nafranets ⎈ in OctoberCMS
vladimir
Post::with([‘tags’ => static function($query) {
$query->wherePublished(true);
}])->get();


Может как-то так получится, правда жадная загрузка
так pubslihed у Post, а не у Tag
источник

v

vladimir in OctoberCMS
А теги с постами не связаны? Обратная связь не настроена?
источник

K

Konstantin in OctoberCMS
vladimir
Post::with([‘tags’ => static function($query) {
$query->wherePublished(true);
}])->get();


Может как-то так получится, правда жадная загрузка
Post::with([‘tags’])->wherePublished(true)->get();

тогда ещё проще должно быть
источник

M

MihailBishkek in OctoberCMS
Nikita Nafranets ⎈
ребят, у меня есть полиморфная связь m2m модели tags с несколькими моделями, в моделях есть поле published. Как зафетчить все теги которые привязаны к моделям с полем published = true?
whereHasMorph не подойдёт?
источник

NN

Nikita Nafranets ⎈ in OctoberCMS
vladimir
А теги с постами не связаны? Обратная связь не настроена?
так у меня полиморфная связь, какая еще обратная связь
источник

NN

Nikita Nafranets ⎈ in OctoberCMS
Konstantin
Post::with([‘tags’])->wherePublished(true)->get();

тогда ещё проще должно быть
ты предлагаешь фетчить из каждой модели по отдельности теги?
источник

NN

Nikita Nafranets ⎈ in OctoberCMS
а потом склеивать результат?
источник

K

Konstantin in OctoberCMS
with должен джойн делать и сразу тебе выплевывать всё в одном запросе
источник

v

vladimir in OctoberCMS
Nikita Nafranets ⎈
так у меня полиморфная связь, какая еще обратная связь
Да, не дочитал про m2m, извиняюсь.
источник

v

vladimir in OctoberCMS
Nikita Nafranets ⎈
так у меня полиморфная связь, какая еще обратная связь
Хотя, можно ведь в модели тегов сделать обратную полиморфную а-ля:
public $morphedByMany = [
       'posts'  => ['Acme\Blog\Models\Post', 'name' => 'taggable'],
   ];


И по ней уже делать whereHas
Tag::whereHas(‘posts’, static function($query) {
    $query->wherePublished(true);
})->get();
источник

NN

Nikita Nafranets ⎈ in OctoberCMS
так у меня 4 модели к тегам привязаны
источник

v

vladimir in OctoberCMS
Дэ, это усложняет 😄
источник

v

vladimir in OctoberCMS
Можно тогда костыльком через orWhereHas… В модели тегов  scope запилить.
Типо такого:

function scopeIsPublished($query): void
{
    foreach(array_keys($this->morphedByMany) as $key => $relation) {
           $query->{$key === 0 ‘whereHas’ : ‘orWhereHas’}($relation, static function($query) {
                 $query->wherePublished(true);
           });
    }
}


$tagsCollection = Tags::isPublished()->get();

Но это как-то жестко будет по запросу, да и как-то не очень выглядит
источник

v

vladimir in OctoberCMS
Вложенные запросы и так не совсем прикольная затея.
источник