php - tablas - laravel varios where
¿Por qué Laravel Eloquent genera SQL sin comillas? (1)
Estoy intentando ejecutar sudo php artisan migrate db:seed
en mi instalación de Laravel y obteniendo el siguiente error:
[Illuminate/Database/QueryException]
Array to string conversion (SQL: insert into `sponsor_phones` (`phone_number`, `type`, `is_primary`, `sponsor_id`, `updated_at`, `created_at
`) values (247-216-6255 x4356, Home, 1, 101, 2017-05-30 23:31:59, 2017-05-30 23:31:59))
Parece que el SQL Eloquent está creando para sembrar carece de comillas donde se necesitan. Agregar citas en los lugares correctos (a continuación) le permite ejecutarlo.
insert into
`sponsor_phones`
(`phone_number`,
`type`,
`is_primary`,
`sponsor_id`,
`updated_at`,
`created_at`
)
values
(
''(732) 540-9730'',
''Busi'',
0,
51,
''2017-05-27 21:53:44'',
''2017-05-27 21:53:44'');
No estoy seguro de qué es lo que está causando este error, y buscar razones por las cuales Eloquent no agrega citas parece estar fallando en producir resultados útiles.
Tengo un repositorio para que pueda echar un vistazo (y porque, como proyecto de código abierto, necesita uno de todos modos).
El problema no está con las citas. En su ModelFactory.php, en las funciones getTypePhone
, getTypeEmail
y getTypeAddress
está regresando
return $faker->randomElements(array(''Work'', ''Cell'', ''Home'', "VoIP"));
$faker->randomElements
devuelve una matriz. En su lugar, use $faker->randomElement
para devolver un solo elemento de la matriz.
return $faker->randomElement(array(''Work'', ''Cell'', ''Home'', "VoIP"));