Size: a a a

2019 December 15

VM

Vitaliy Mikhailov in Laravel Pro
Ytygov Valeriy
А не отстойные это какие?
С четким пониманием, чего он хочет и сколько это будет стоить
источник

A

Adel in Laravel Pro
а так, критериев много
источник

VM

Vitaliy Mikhailov in Laravel Pro
Если точнее, который понимает, что не бывает корпоративных CRM за 3к рублей и беляш
источник

zN

zVlad Nesquik in Laravel Pro
Привет :) Я так понимаю что это два разные запроса?

первый
$posts = Post::whereHas('tags', function($q) {
   $q->where('tag', 'foo');
})->get();
и второй
$posts = Post::with(['tags' => function($q){
   $q->where('tag', 'foo');
}])->get();

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

A

Adel in Laravel Pro
zVlad Nesquik
Привет :) Я так понимаю что это два разные запроса?

первый
$posts = Post::whereHas('tags', function($q) {
   $q->where('tag', 'foo');
})->get();
и второй
$posts = Post::with(['tags' => function($q){
   $q->where('tag', 'foo');
}])->get();

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

AO

Alexander Osipov in Laravel Pro
zVlad Nesquik
Привет :) Я так понимаю что это два разные запроса?

первый
$posts = Post::whereHas('tags', function($q) {
   $q->where('tag', 'foo');
})->get();
и второй
$posts = Post::with(['tags' => function($q){
   $q->where('tag', 'foo');
}])->get();

Мне надо для поиска по сайту.
Первый подходит и ищит посты, в которых есть нужные мне теги.
А второй просто ограничивает показ тегов в посте, но выводит все посты.
Да, конечно, все правильно он делает
источник

AO

Alexander Osipov in Laravel Pro
Первый запрос ищет посты, у которых есть тэг foo, второй берет все посты, а тэги выводит только те, у которых tag = foo
источник

AO

Alexander Osipov in Laravel Pro
Напиши, что именно ты от запроса хочешь получить
источник

zN

zVlad Nesquik in Laravel Pro
А как тогда заделать типо такого:
$posts = Post::whereHas(['comment'=>'тут тоже функция', 'tags'=> function($q) {
   $q->where('tag', 'foo');
}])->get();


Т.е. я так понял whereHas с массивами данных не работает? Только через whereHas()->whereHas() делать?
источник

zN

zVlad Nesquik in Laravel Pro
Alexander Osipov
Напиши, что именно ты от запроса хочешь получить
У меня сложный поиск. Таблицы связаны мноние ко многим. И надо из далека искать )
источник

RK

Roman Kolosov in Laravel Pro
zVlad Nesquik
Привет :) Я так понимаю что это два разные запроса?

первый
$posts = Post::whereHas('tags', function($q) {
   $q->where('tag', 'foo');
})->get();
и второй
$posts = Post::with(['tags' => function($q){
   $q->where('tag', 'foo');
}])->get();

Мне надо для поиска по сайту.
Первый подходит и ищит посты, в которых есть нужные мне теги.
А второй просто ограничивает показ тегов в посте, но выводит все посты.
а зачем только вопрос в два запроса это делать?
источник

RK

Roman Kolosov in Laravel Pro
это не поиск а выборка)
источник

RK

Roman Kolosov in Laravel Pro
поиск это когда ищешь в тексте совпадения с исходной строкой по неким правилам, гораздо сложнее операция
источник

RK

Roman Kolosov in Laravel Pro
zVlad Nesquik
А как тогда заделать типо такого:
$posts = Post::whereHas(['comment'=>'тут тоже функция', 'tags'=> function($q) {
   $q->where('tag', 'foo');
}])->get();


Т.е. я так понял whereHas с массивами данных не работает? Только через whereHas()->whereHas() делать?
как понять с массивавми данных? можно передать в use и сделать whereIn
источник

RK

Roman Kolosov in Laravel Pro
но это такое себе если речь идет о больших данных
источник

RK

Roman Kolosov in Laravel Pro
$tags = Tag::all();

$another = Another::whereHas('tags', function ($q) use ($tags) {
 $q->whereIn('id', $tags->pluck('id'));
})->get();
источник

RK

Roman Kolosov in Laravel Pro
но вопрос зачем, если можно сделать в одном билдере это всё
источник

zN

zVlad Nesquik in Laravel Pro
Просто у меня запрос идет такой:
$posts = Post::with(['tags',  'comments'])->get();
И мне надо теперь в таблицах tags и comments тоже заделать выборку where.
А если использовать whereHas то нелья там использовать массив whereHas([])
источник

RK

Roman Kolosov in Laravel Pro
так изи же
источник

RK

Roman Kolosov in Laravel Pro
для виза тоже closure есть
источник