У меня есть сериализованный столбец в кодировке base64 в таблице MySQL.всякий раз, когда я сохраняю значение в нем, я сохраняю его следующим образом:
$category_id = base64_encode(serialize($request->category_id));
И всякий раз, когда я хочу восстановить его значение до нормального значения, я использую следующий код в моей модели:
public function getCategoryIdAttribute($value)
{
return unserialize(base64_decode($value));
}
Проблема в том, как я могу написать красноречивый запрос для проверки значений этого столбца?
давайте предположим, что после десериализации и декодирования в базе данных у меня есть: category_id : [1, 5, 3, 9]
,
И переменная cat_id: $cat_id = [3];
или $cat_id = [1, 9];
как мне написать свой запрос, чтобы иметь возможность проверить, находится ли моя переменная в массиве category_id?
Я имею в виду что-то вроде:
Seat::WhereIn('category_id', $cat_id);
Должен ли я написать свой запрос следующим образом:
Seat::WhereIn('category_id', base64_encode(serialize($cat_id)));