У меня есть следующее:
$srv = DB::table('ads')
->join('ad_service','ad_service.ad_id', '=', 'ads.id')
->select('ads.id')
->whereIn('ads.id',[45789,46531])
->get();
Log::info($srv);
и информация журнала дает мне
49 => stdClass::__set_state(array(
'id' => '46531',
)),
50 =>
stdClass::__set_state(array(
'id' => '46531',
)),
51 =>
stdClass::__set_state(array(
'id' => '46531',
)),
Что я хотел бы иметь:
вернуть запись ОДНАЖДЫ, естьнесколько записей с этим идентификатором в таблице "ad_service", и я хотел бы получить его один раз.это отношения многие ко многим.также самая большая проблема, что это за состояние набора stdclass?
Я ожидал что-то вроде:
array('id' => '46531', ...,)
спасибо, ребята.
РЕДАКТИРОВАТЬ: Решено с помощью Eloquent:
$srv = Ad::whereIn('id',[46696,48982,...MORE IDS HERE])->get();
возвращает не объект, а саму коллекцию.я действительно не знаю, что @ourmandave имел в виду под «вы получаете коллекцию с объектами класса std», я имею в виду, очевидно, что я мог это видеть, но я действительно не знаю, почему я получил это, и почему я получаю это, как я хочу, используя eloquent.Любой ответ на этот вопрос будет оценен: почему DB :: возвращает этот класс std, а Eloquent возвращает "требуемый формат"?