2016-08-28 4 views
0

Я пытаюсь скопировать строку из таблицы в другую таблицу с помощью запроса Laravel и получить следующая ошибка.Ошибка: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец '0' в 'списке полей' (SQL:)

$invoice = Capsule::table('tblinvoices')->where('id', $invoiceid)->get(); //array 
$copiedInvoiceid = Capsule::table('mod_myinvoices')->insertGetId(array($invoice)); 

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'field list' (SQL:)

Я использовал CREATE TABLE mod_myinvoices LIKE tblinvoices создать mod_myinvoices таблицу.

Любые предложения?

+0

показать код insertGetId() – buildok

+0

@buildok https://laravel.com/docs/5.2/queries#inserts –

+0

Но $ фактура это индексный массив, как [ '0' => Capsule_row_1, .. ]. Вам нужно получить ассоциативный массив, например [column_name => value, ..] – buildok

ответ

1

Попробуйте!

Изменить

$invoice = Capsule::table('invoices')->where('id', $invoiceid)->get(); 
    $copiedInvoiceid = Capsule::table('myinvoices')->insertGetId(array($invoice)); 

Для

$invoice = Capsule::table('invoices')->where('id', $invoiceid)->first(); 
    $copiedInvoiceid = Capsule::table('myinvoices')->insertGetId((array)$invoice); 
+0

Работал как шарм. Спасибо –

+0

@JohnPriestakos. Вам нужно больше объяснений. Я обновлю – KmasterYC

+0

Нет, я понял. Спасибо за ваше решение. –

0

Попробуйте.

$invoice = Capsule::table('invoices')->where('id', $invoiceid)->get(); 

$invoiceArr = (array) $invoice[0]; // convert object to array  

$copiedInvoiceid = Capsule::table('myinvoices')->insertGetId($invoiceArr); 

 Смежные вопросы

  • Нет связанных вопросов^_^