Есть ли причина, по которой вы храните custom_fields.rel_id
как текст, а не как целое число? Если это строковый идентификатор, например A2BFZJ
, зачем сравнивать его с content.id
, который имеет тип integer. Кроме того, если вы использовали Модели, которые Laravel обеспечивает, это можно решить с помощью массива $casts
в Модели.
Единственный другой способ ввести приведение в запросе Laravel - это просто использовать DB :: raw, Вы можете набрать приведение следующим образом:
->where(DB::raw('CAST(content.content_type AS TEXT)'), '=', 'product');