Как мне установить значение Да или Нет в моем шаблоне PhpWord вместо 1 или 0? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть форма и шаблон с форматом .docx. Процесс замены переменных в шаблонах работает хорошо, кроме флажка. В поле значения у меня есть 1 и 0 . Теперь вместо логического значения (0 или 1) я хочу иметь Да и Нет. Мой контроллер здесь:

      public function edit(Stagiaire $stagiaire, $downloadName = null)
{
    $id = $stagiaire ->id;
    $desc1 = Stagiaire::find($id);

    $my_template = new \PhpOffice\PhpWord\TemplateProcessor(public_path('templateStagiaire.docx'));

    $my_template->setValue('id', $desc1->id);
    $my_template->setValue('civilite', $desc1->civilite);
    $my_template->setValue('prenoms', $desc1->prenoms);
    $my_template->setValue('nom', $desc1->nom);

    //This 3 inputs are checbox in my form
    $my_template->setValue('regles_deonto', $desc1->regles_deonto);
    $my_template->setValue('reglement_interieur', $desc1->reglement_interieur);
    $my_template->setValue('horaires', $desc1->horaires);
    
    //The name of my file
    $first_name = $stagiaire->prenoms ;
    $last_name = $stagiaire->nom ;
    $filename = $first_name. " ". $last_name;
    

    try{
        $my_template->saveAs(storage_path("$filename.docx"));
    }catch (Exception $e){
        //handle exception
    }
    $downloadName = $downloadName??$filename;

    return response()->download(storage_path("$filename.docx"));
    }

Моя форма

    <div id="container">
                    <input type="checkbox" name="regles_deonto" id="regles_deonto" value="1" required 
    > Régles déontologies
                    <input type="checkbox" name="reglement_interieur" id="reglement_interieur" 
    value="1" required > Réglement Intérieur

                    <input type="checkbox" name="horaires" id="horaires" value="1" required > 
    Horaires
    </div>

Мой вопрос: как я могу заменить логические значения (0 и 1) на Да или Нет в моем шаблоне Word. Мне нужна помощь, пожалуйста. Заранее благодарим.

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Вы можете использовать (bool) для преобразования вашего ввода в логическое значение и использовать условный оператор для получения «Да» или «Нет»:

//This 3 inputs are checbox in my form
$my_template->setValue('regles_deonto', (bool) $desc1->regles_deonto ? 'Yes' : 'No');
$my_template->setValue('reglement_interieur', (bool) $desc1->reglement_interieur ? 'Yes' : 'No');
$my_template->setValue('horaires', (bool) $desc1->horaires ? 'Yes' : 'No');
1 голос
/ 14 июля 2020

Вы можете просто сделать это,

//This 3 inputs are checbox in my form
    $desc1->regles_deonto = (bool)($desc1->regles_deonto) == true ? 'Yes' : 'No'; 
    $my_template->setValue('regles_deonto', $desc1->regles_deonto);

Вы можете сделать то же самое для двух других значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...