93 行
2.6 KiB
PHP
93 行
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Models\EncuestaModel;
|
|
use App\Models\PreguntaModel;
|
|
use App\Models\RespuestaModel;
|
|
use App\Models\SurveyUserModel;
|
|
use App\Models\UserModel;
|
|
use phpDocumentor\Reflection\DocBlock\Tags\TagWithType;
|
|
|
|
class Encuesta extends BaseController
|
|
{
|
|
public function encuesta($id)
|
|
{
|
|
if (!$encuesta = model(EncuestaModel::class)->find($id)) {
|
|
throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
|
|
}
|
|
$data = [
|
|
'id' => $encuesta['id'],
|
|
'title' => $encuesta['title'],
|
|
'preguntas' => model(PreguntaModel::class)->getPreguntas($id),
|
|
];
|
|
return view('Encuesta/template', $data);
|
|
}
|
|
|
|
public function submit($id)
|
|
{
|
|
$respuestaModel = model(RespuestaModel::class);
|
|
$userId = user_id();
|
|
|
|
$data = $this->request->getPost();
|
|
$respuestas = [];
|
|
|
|
foreach ($data as $questionId => $answer) {
|
|
if (is_array($answer)) {
|
|
foreach ($answer as $a) {
|
|
$respuesta = [
|
|
'survey_id' => $id,
|
|
'user_id' => $userId,
|
|
'answer' => $a,
|
|
'question_id' => $questionId,
|
|
];
|
|
array_push($respuestas, $respuesta);
|
|
}
|
|
} else {
|
|
$respuesta = [
|
|
'survey_id' => $id,
|
|
'user_id' => $userId,
|
|
'answer' => $answer,
|
|
'question_id' => $questionId,
|
|
];
|
|
|
|
array_push($respuestas, $respuesta);
|
|
}
|
|
// $answer = implode(chr(13), $answer);
|
|
|
|
|
|
};
|
|
|
|
if (!$respuestaModel->insertBatch($respuestas)) {
|
|
return redirect()->back()
|
|
->with('msg', array(
|
|
'type' => 'danger',
|
|
'body' => 'No se pudo guardar la encuesta. Inténtalo nuevamente.'
|
|
));
|
|
}
|
|
|
|
// Registrar que usuario respondió encuesta
|
|
$surveyUserModel = model(SurveyUserModel::class);
|
|
$surveyUserModel->save([
|
|
'survey_id' => $id,
|
|
'user_id' => $userId,
|
|
]);
|
|
|
|
return redirect()->route('home')->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Encuesta guardada correctamente'
|
|
));
|
|
}
|
|
|
|
|
|
public function userAnswered()
|
|
{
|
|
$surveyUserModel = model(SurveyUserModel::class);
|
|
|
|
$encuestaId = 23;
|
|
$userId = user_id();
|
|
|
|
echo $surveyUserModel->alreadyAnswered($encuestaId, $userId);
|
|
}
|
|
}
|