Написать исправление в word из laravel с помощью php word?
я использую библиотеку php word в своем проекте с laravel, она работает правильно, что я делаю, это использовать шаблон word и добавлять к нему значения с помощью TemplateProcessor, проблема, которую я представляю, - это когда я хочу написать в шаблон word динамический массив, содержащий значения запроса к bd. расположение: имяacti1['futbol', 'natacion','beisbol'].
я пытаюсь следующим образом, я прилагаю код:
$sqlclientes="SELECT * FROM datos_clientes";
$datos_clientes = DB::select($sqlclientes);
foreach ($datos_clientes as $datos_cli) {
$nombre_cli=$datos_cli->nombre_cli;
$empresa_cli=$datos_cli->empresa_cli;
$correo_cli=$datos_cli->correo_cli;
$ciudad_cli=$datos_cli->ciudad_cli;
$direccion_cli=$datos_cli->direccion_cli;
$fecha_cli=$datos_cli->fecha_cli;
$objetivo_ =$datos_cli->objetivo_;
$referencia_= $datos_cli->referencia_;
}
//Aqui creamos el word con texto de prueba
// Abriendo la plantilla
$TemplateProcessor= new TemplateProcessor(Storage_path('Estudio_Conexion.docx'));
$TemplateProcessor->setValue('nombre_cliente',$nombre_cli);
$TemplateProcessor->setValue('nombre_empresa',$empresa_cli);
$TemplateProcessor->setValue('Correo',$correo_cli);
$TemplateProcessor->setValue('direccion',$direccion_cli);
$TemplateProcessor->setValue('fecha',$fecha_cli);
$TemplateProcessor->setValue('referencia',$referencia_);
$TemplateProcessor->setValue('objetivo',$objetivo_);
$TemplateProcessor->setValue('actividades',$nombreacti1);
$TemplateProcessor->saveAs('cot1.docx');
return response()->download('cot1.docx');
в word я назначаю переменную activities следующим образом:
я хотел бы, чтобы этот массив был вставлен в виде списка в этой части документа, но при этом я получаю ошибку(Array to string conversion) и поврежденный документ загружается.
1 answers
Используя информацию, которую я предоставляю alo Malberez, выполните следующее решение, я прилагаю его здесь, Если кто-то служит:
$sqlclientes="SELECT * FROM datos_clientes";
$datos_clientes = DB::select($sqlclientes);
foreach ($datos_clientes as $datos_cli) {
$nombre_cli=$datos_cli->nombre_cli;
$empresa_cli=$datos_cli->empresa_cli;
$correo_cli=$datos_cli->correo_cli;
$ciudad_cli=$datos_cli->ciudad_cli;
$direccion_cli=$datos_cli->direccion_cli;
$fecha_cli=$datos_cli->fecha_cli;
$objetivo_ =$datos_cli->objetivo_;
$referencia_= $datos_cli->referencia_;
}
//Aqui hago el implode con el salto de linea de word usando el arreglo
$var=implode(" </w:t><w:br/><w:t> ",$nombreacti1);
// Creating the new document...
$TemplateProcessor= new TemplateProcessor(Storage_path('Estudio_Conexion.docx'));
$TemplateProcessor->setValue('nombre_cliente',$nombre_cli);
$TemplateProcessor->setValue('nombre_empresa',$empresa_cli);
$TemplateProcessor->setValue('Correo',$correo_cli);
$TemplateProcessor->setValue('direccion',$direccion_cli);
$TemplateProcessor->setValue('fecha',$fecha_cli);
$TemplateProcessor->setValue('referencia',$referencia_);
$TemplateProcessor->setValue('objetivo',$objetivo_);
$TemplateProcessor->setValue('algo',$var);
$TemplateProcessor->saveAs('cot1.docx');
return response()->download('cot1.docx');