2013-05-31 5 views
0

Когда я использую 2d-массив с whereIn, я получил исключение преобразования строки в строку.где с 2D-массивом?

Можно использовать whereIn с 2d-массивом, как codeigniter?

Edit:

И у меня есть второй вопрос. Когда я использую whereIn с массивом, я не получаю никакого результата. Но когда я использую запрос в phpmyadmin, я получаю результат.

Array ([0] => Array ([query] => select * from `tab_articles` inner join `tab_categories` on `tab_categories`.`category_id` = `tab_articles`.`category_id` where `article_id` in (?) [bindings] => Array ([article_id] => 4) [time] => 0.79)) 

Массив не пуст. Идентификатор существует в базе данных и используется get(), чтобы получить результат, но в массиве ничего нет. Странно.

+0

Пожалуйста, переместите второй вопрос на второй вопрос. Когда вы редактируете дополнительные вопросы, вы аннулируете существующие ответы и затрудняете для ответчиков, которым теперь приходится отвечать на них. –

+0

Извините, в следующий раз я сделаю это, потому что нашел решение для своего второго вопроса и свой первый день и вопрос в stackoverflow. – Marco

ответ

1

Я так не считаю.

Но если ваш массив является Красноречивой коллекцией, вы можете использовать функцию modelKeys.

$query->whereIn($collection->modelKeys()); 

Эта функция возвращает массив первичных ключей ваших моделей.

https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Collection.php#L92

+0

Хорошо, я нашел ошибку ... Я сделал что-то вроде этого: $ array = array ('id' => $ id), но это не работает. Решение представляет собой массив и только идентификаторы без каких-либо ключей. – Marco