2016-08-28 3 views
0

J'essaie de copier une ligne d'une table vers une autre table avec Laravel Query et j'obtiens le erreur suivante.Erreur: SQLSTATE [42S22]: Colonne non trouvée: 1054 Colonne inconnue '0' dans 'Liste des champs' (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:)

Je l'ai utilisé CREATE TABLE mod_myinvoices LIKE tblinvoices pour créer la table mod_myinvoices.

Des suggestions?

+0

Afficher le code insertGetId() – buildok

+0

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

+0

Mais $ facture c'est un tableau indexé, comme [ '0' => Capsule_row_1, .. ] Vous devez obtenir un tableau associatif comme [nom_colonne => valeur, ..] – buildok

Répondre

1

Essayez-le!

changement

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

Pour

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

Travaillé comme un charme. Merci –

+0

@JohnPriestakos. Avez-vous besoin de plus d'explications. Je vais mettre à jour – KmasterYC

+0

Non je l'ai eu. Merci pour votre solution. –

0

Essayez.

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

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

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