Выберите в Laravel
У меня глупый маленький вопрос.
Поскольку я уже знаю, что запрос на выборку в Laravel всегда будет возвращать массив результатов, у меня есть этот запрос:
$id = DB::select(
'select id from users where username = ?', array(Session::get('theuser')));
вставив этот идентификатор в мою таблицу
DB::table('characters')->insert(array(
'id' => $id,
'char_name' => $charname,
'char_dynasty' => $dynastyname,
'picture' => 'Male1.png'
));
Я получу ошибку: ksort() ожидает, что параметр 1 будет массивом, задана строка. Как я могу избавиться от этого? Заранее спасибо!
1 ответ
Решение
Хотя бы один из $id
, $charname
или же $dynastyname
это массив и не должно быть. Вы используете это неправильно.
Ниже приведен документ, подтверждающий это. Вывод "Предупреждение: ksort() ожидает, что параметр 1 будет массивом, целое число указано в строке 13". 'id' => 'a'
,
function insert(array $values)
{
if ( ! is_array(reset($values)))
{
$values = array($values);
}
else
{
foreach ($values as $key => $value)
{
ksort($value); $values[$key] = $value;
}
}
var_dump($values);
}
insert(array(
'id' => array('a'),
'char_name' => 2,
'char_dynasty' => 3,
'picture' => 'Male1.png'
));