Выберите в 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'                  
));
Другие вопросы по тегам