PHP로 생년월일의 폼을 자작 함수로 해 Laravel의 blade로 사용해 보았다
소개
Laravel의 blade로, 폼에 생년월일 입력란을 만들려고 하고, 「생년월일 select copipe」로 조사해 copipe했을 때, 너무 길다고 생각했으므로,
PHP로 다시 작성하고 나서, Laravel의 blade로 표시시키는 곳까지 해 보았습니다.
index.blade.php
//~略
<option value="">-</option>
<option value="1900">1900</option>
<option value="1901">1901</option>
<option value="1902">1902</option>
<option value="1903">1903</option>
<option value="1904">1904</option>
<option value="1905">1905</option>
<option value="1906">1906</option>
<option value="1907">1907</option>
<option value="1908">1908</option>
<option value="1909">1909</option>
<option value="1910">1910</option>
<option value="1911">1911</option>
<option value="1912">1912</option>
//略)2021まで続く...
//...長い。
우선 원시 PHP로 테스트
나중에, 자작 함수로서 blade에 표시시킬 생각이었으므로, function내에 처리를 써, 호출하도록(듯이) 했습니다.
post로 받은 후에 년과 월과 일을 연결하여 date형으로 하고 싶었으므로, 월과 일은 value치를 str_pad() 로 0 메우게 했습니다.
→★코멘트보다,
sprintf
쪽이 보다 편하다는 의견을 받았으므로, 변경했습니다. 더 똑똑해졌습니다. 고맙습니다.test.php
<?php
//年
function yearSelect(){
$n = date("Y"); //現在の年
$y = $n - 125; //125年前からスタート
for($y; $y<$n; $y++){
echo '<option value="'.$y.'">'.$y.'</option>';
}
}
//月
function monthSelect(){
for($m=1; $m<=12; $m++){
$pad = sprintf('%02d', $m)
//1~9までは前を0埋め,str_pad($m, 2 ,0, STR_PAD_LEFT)から変更
echo '<option value="'.$pad.'">'.$m.'</option>';
}
}
//日
function daySelect(){
for($d=1; $d<=31; $d++){
$pad = sprintf('%02d', $d);
//1~9までは前を0埋め,str_pad($d, 2 ,0, STR_PAD_LEFT)から変更
echo '<option value="'.$pad.'">'.$d.'</option>';
}
}
?>
<!--略-->
<div>
<select name="birthday_year">
<option value="">-</option>
<?php yearSelect(); ?>
</select>
年
<select name="birthday_month">
<option value="">-</option>
<?php monthSelect(); ?>
</select>
月
<select name="birthday_day">
<option value="">-</option>
<?php daySelect(); ?>
</select>
日
</div>
<!--略-->
할 수 있었으므로, Laravel로 해 보겠습니다.
【Laravel】자작 함수용의 클래스를 작성
app 디렉토리에 Lib (선택 사항) 디렉토리를 만들고 MyFunction.php (선택 사항)를 만듭니다.
MyFunction 클래스 안에 static 메소드를 작성해 갑니다. (아까의 것을 static으로 해 부딪쳤을 뿐입니다.)
static의 해설로서는 이하가 알기 쉬웠습니다. 고맙습니다.
h tps : // f sh sh-enginee r. 하테나 bぉg. 코m/엔트리/2018/08/23/031829
app>MyFunction.php
<?php
namespace App\Lib;
class MyFunction
{
public static function yearSelect(){
$n = date("Y"); //現在の年
$y = $n - 125; //125年前からスタート
for($y; $y<$n; $y++){
echo '<option value="'.$y.'">'.$y.'</option>';
}
}
public static function monthSelect(){
for($m=1; $m<=12; $m++){
$pad = sprintf('%02d', $m)
//1~9までは前を0埋め,str_pad($m, 2 ,0, STR_PAD_LEFT)から変更
echo '<option value="'.$pad.'">'.$m.'</option>';
}
}
public static function daySelect(){
for($d=1; $d<=31; $d++){
$pad = sprintf('%02d', $d);
//1~9までは前を0埋め,str_pad($d, 2 ,0, STR_PAD_LEFT)から変更
echo '<option value="'.$pad.'">'.$d.'</option>';
}
}
}
【Laravel】별칭에 등록
config 디렉토리의 app.php에 있는 별칭(aliases) 안에
'클래스 이름' => App\Lib\파일 이름::class, 추가
config>app.php
'aliases' => [
//~略
'MyFunction' => App\Lib\MyFunction::class,
],
【Laravel】blade로 사용한다
{{ MyFunction::함수 (메소드) 이름}}
index.blade.php
<!--略-->
<li class="form-item">
<p class="form-item-title">生年月日</p>
<select name="birthday_year">
<option value="">-</option>
{{ MyFunction::yearSelect() }}
</select>
年
<select name="birthday_year">
<option value="">-</option>
{{ MyFunction::monthSelect() }}
</select>
月
<select name="birthday_year">
<option value="">-</option>
{{ MyFunction::daySelect() }}
</select>
日
</li>
<!--略-->
안전하게 표시되었습니다. 끝.
결론
첫 Qlita 게시물이었습니다.
언제나 신세를 지고 있으므로, 자신도 생각해 투고해 보았습니다만, Qlita의 질을 낮추어 버리는 것은 제일 피하고 싶은 곳이므로, 만약 그 밖에 좋은 방법이나 잘못된 점 등 있으면 가르쳐 주시면 감사하겠습니다.
Reference
이 문제에 관하여(PHP로 생년월일의 폼을 자작 함수로 해 Laravel의 blade로 사용해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koma_zuchi/items/edb5b77625ade8025ef8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)