“Красноречивый поиск из столбца детской таблицы” Ответ

Красноречивый поиск из столбца детской таблицы

Member::whereHas('membership', function ($q) {
   $q->where('expiration', 'like', 'somethingToSearchFor');
})->get();
Anxious Alpaca

Красноречивый поиск из столбца детской таблицы

$fields = array('membership' => ['expiration'], 'firstname', 'middlename', 'lastname', 'email', 'dlnumber', 'membership_id');

// orWhereHas will use joins, so we'll start with fields foreach
foreach ($fields as $relation => $field)
{
  if (is_array($field))
  {
    // here we join table for each relation
    $query->orWhereHas($relation, function ($q) use ($field, $search) {

      // here we need to use nested where like: ... WHERE key = fk AND (x LIKE y OR z LIKE y)
      $q->where(function ($q) use ($field, $search) {
        foreach ($field as $relatedField)
        {
          foreach ($search as $term)
          {
            $q->orWhere($relatedField, 'like', "%{$term}%");
          } 
        } 
      });
    });
  } 
  else
  {
    foreach ($search as $term)
    {
      $query->orWhere($field, 'like', "%{$term}%"); 
    } 
  } 
}
Anxious Alpaca

Ответы похожие на “Красноречивый поиск из столбца детской таблицы”

Вопросы похожие на “Красноречивый поиск из столбца детской таблицы”

Больше похожих ответов на “Красноречивый поиск из столбца детской таблицы” по PHP

Смотреть популярные ответы по языку

Смотреть другие языки программирования