〜艦長日誌〜

〜好きなことを好きなときに書きます〜

CakePHP3:FormのDateについて

CakePHP3でFormヘルパーで年月日の入力を得たいとき

$this->Form->date('Tables.date')

と書くが、基本下記のようにしておくと親切かも。(ようは未入力の所は’-’を入れ、ページを開いた日付を入れておく)

$this->Form->date('Tables.date',['monthNames'=>false,'empty'=>'----',"default" => date ( "Y-m-d" )])

※ datetimeならdate("Y-m-d:h-m")として現在時刻も入れられる。ただし日本時間がきちんと動いていないとダメ

CakePHP3のForm Helperの使い方のまとめ | エス技研

CakePHPで日付選択フォームのカスタマイズ | EasyRamble

タイムゾーンを合わすなら

CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法 | エス技研

あたりが参考になった。

Docker:docker composeが無い!(Ubuntu)

docker-composeはあるけど、docker composeが無い、ということがあり、調べたら下記が非常に役だった。

ただし経験上、何も無いところからちゃんとDockerをインストールすれば、docker composeもちゃんと使える。

qiita.com

MySQL:timezoneの設定

CakePHPなどでtimezoneを設定するとエラーが出ることがある。

下記のようなエラーならMySQL側にtimezoneの設定がないものと思われるので設定する。

Error: SQLSTATE[HY000] General error: 1298 Unknown or incorect time zone. 'Asia/Tokyo'

blog.masuyoshi.com

【Cakephp】AsiaTokyoタイムゾーンをMySQLに追加する方法 - FuwaFuwaShoChan BLOG

CakePHP3:最初の手順 覚え書き

CakePHP3をインストール後から・・・

・XxxxsController.phpの作成  src/ControllerにXxxxsController.phpを作成。

※ まあこんな感じで・・・
--- XxxxsController.php ---
<?php
namespace App\Controller ;
use App\Controller\AppController ;

class XxxxsController extends AppController {
    public function index(){
    }
}

・ctpファイルを作成  上記のままだとindex.ctpファイルが無い、作れ!とエラーがでるのでsrc/TemplateにXxxxsというディレクトを作成して、その中にindex.ctpを作成する。

※ たとえばこんな感じ。HTMLファイルだと思って適当に何か表示するものを書く。
--- index.ctp ---
<h1>ここに書く</h1>

webroot/css/xxxxs.css webroot/js/xxxxs.js (まずは中身は空でいい) を作成して、 src/Template/Layout/notes.ctp を作成する。

※ まずはこんな感じ
--- xxxxs.ctp ---
<!DOCTYPE html>
<html>
    <head>
        <?=$this->Html->charset() ?>
        <title><?=$this->fetch('title') ?></title>
        <?=$this->Html->css('notes') ?>
        <?=$this->Html->script('notes') ?>
    </head>

    <body>
        <header class="head row">
<!--            <?=$this->element('header',$header) ?> -->
        </header>

        <div class="content row">
            <?=$this->fetch('content') ?>
        </div>

        <footer class="foot row">
<!--             <?=$this->element('footer',$footer) ?> -->
        </footer>
    </body>
</html>