Szukanie z dwóch kolumn w jednym inpucie

Hej zrobiłem CRUD do modelu Blog. Teraz w indexie mam kolumnę Rel_User gdzie mam przypsianego usera który stworzył ten blog. I w indexie gdzie mogę wyszukiwać dane chciałbym w kolumnie Rel_User wyszukiwać użytkownika po jego imieniu i nazwisku. Jednak w tabeli użytkownicy Imię i nazwisko jest w oddzielnych tabelach. Co mogę zrobić aby szukać w jednym inpucie z dwóch kolumn? W BlogSearch zrobiłem coś takigo, dołączyłem relację do użytkownika:


$query->joinWith('relUser');


        $query->andFilterWhere([

            'Id' => $this->Id,

            'CreatedAt' => $this->CreatedAt,

        ]);


        $query->andFilterWhere(['like', 'Title', $this->Title])

             ->andFilterWhere(['like', 'Description', $this->Description])

             ->andFilterWhere(['like', 'UrUser.Name', $this->Rel_User]);

I szukam imienia w polu Rel_user jednak chciałbym tutaj szukać po imieniu i nazwisku. 

Próbowałem też coś takeigo:


$query->andFilterWhere(['like', 'Title', $this->Title])

             ->andFilterWhere(['like', 'Description', $this->Description])

             ->andFilterWhere(['like', 'UrUser.Name', $this->Rel_User])

             ->andFilterWhere(['like', 'UrUser.Surname', $this->Rel_User]);

Ale to nie działa. Co mogę zrobić, aby szukać użytkownika po jego imieniu i nazwisku w jednym inpucie? Powinienem zrobić jakąś wirtualną kolumnę która konkatenuje te dwie kolumny w jedna?

Stworzenie wirtualnej kolumny może odbić się negatywnie na wydajności. Ogólnie jeśli już masz w bazie rozbite imiona i nazwiska, to powinieneś się poważnie zastanowić nad rozbiciem tych kolumn również w wyszukiwarce - to da też większe możliwości i da dokładniejsze wyniki w przypadku nazwisk brzmiących jak imiona. Alternatywnie możesz rozbić treść wyszukiwanego pola na słowa i wyszukiwać każde w obu polach.

Jednak jeśli chciałbym to zrobić w jednym inpucie aby moc wpisać imię lub nazwisko lub i to i to i szukać tej osoby to jak mogę to zrobić? Próbowałem skonkatenować te 2 kolumny:


 $query->select('id, CONCAT_WS(" ", Name, Surname) as fullname')

        ->from('urUser as u');


        $query->andFilterWhere(['like', 'Title', $this->Title])

        ->andFilterWhere(['like', 'Description', $this->Description])

   ->andFilterWhere(['like', 'u.fullname', $this->Rel_User]);

Ewentualnie jest taka komenda która spina w sobie and i or? Bo np gdy zrobiłem tak:


$query->andFilterWhere(['like', 'Title', $this->Title])

             ->andFilterWhere(['like', 'Description', $this->Description])

                ->andFilterWhere(['like', 'UrUser.Name', $this->Rel_User])

                ->orFilterWhere(['like', 'UrUser.Surname', $this->Rel_User]);

To gdy wpisze imie- wyszukuje, gdy wpsize nazwisko- wyszukuje ale gdy wpisze imie i nazwisko to nie wyszukuje