エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Laravel】POSTで送ったRequestを配列で処理したい【213日目】

こんな時に使う

フォームでCheckBoxなどのデータをPOSTで受け取る。

Laravel側でRequestを受け取る。

その受け取ったデータをこんなふうに取得したい。

[
 'username' => 'uiro',
 'item_number => '5'
]

こうかく

function doPost(Request $request)
{
    $request->all();
}

これで受け取ったデータを全て配列で受け取れる。

公式ドキュメント

HTTPリクエスト 5.3 Laravel

ちなみに

toArray()関数もありましたが、元ソースコードを読むと、どうやらall()を呼び出しているだけなので、実質一緒でした。

ブログのタイトルと、見出しの付け方【212日目】

記事が読みにくいことがある

ブログを書いてる時に、最初の方は見出しを付けていなかったりとか、
付けていても記事が読みにくいことがあります。

なので、今少し気をつけていることをメモ

見出しだけで説明出来る?

見出しは概要です。その本文を読まなくても、なんとなくわかるようにする必要があります。

よく、記事に目次や見出しがあると思います。
その目次だけでなんとなく流れがわかると、

『この人はこういう内容をいいたいんだな』と思いながら読むことが出来ます。

目次や見出しがないと、
『この人は何の話をしたいんだろう?』
と考えながら記事を読むことになります。

それは、記事を読む時に内容が頭に入りにくいので、見出しは大切です。

見出しの内容は具体的にしすぎない

記事の詳細は本文で書けばいいです。
プログラミングのコメントで言うと、

  1. printfをする
  2. 画面に文字を表示する

だと、後者のタイトルの方が、実際に何がしたい記事なのかわかりやすいと思います。
そもそも、printfって何?って人だっているわけですし。

具体的なことより、目的や抽象化したものを見出しにしましょう。

見出しに気をつけて記事を書こう

見出し1つで読みやすさが変わるので、
記事を書く時には、書き終わったあと見出しを読み直すことや、
見出しを書いてから記事を書き始めるのもいいと思います。

ぜひやってみてください。

上の立場の視点を持つために、3種類の視点を持ってみよう【211日目】

視点が低すぎるとよく言われる

よく「もっと上の立場の視点を持ちなさい」と言われることは多いと思います。
ただ、どう具体的に考えれば上の立場の視点になれるのかわからないものです。

そこで、私が今気をつけている3つの視点の持ち方を紹介したいと思います。

上の立場の人なら、自分をどう使いたいか

■例
私がもし上司なら、私がどんな部下になってほしいか。
私がもし上司なら、私をどう扱ってプロジェクトを進めたいか。

■効果
自分が○○したい!の考えから離れて、
自分をどう扱われたい!という受け身側の視点を得ることが出来る。

上の立場の人なら、目標を達成するためにどうするか

■例
このプロジェクトを遂行するときには、何をどう手を付けようか
このプロジェクトを遂行するときには、誰をどうアサインしようか

■効果
自分に対する考えを捨てて、目的に集中した行動を考えることができる
自分を主体にして考えることから離れることが出来る

主語を『私』から『チーム、会社』に変える

■例
このプロジェクトに対して、チームはどのように貢献することが出来るか
このプロジェクトを行うことは、会社にどのような意味を持つか

■効果
主語を大きくすることで、行動や責任の規模を上げる事ができる
自分の直近の上司だけではなく、チームの上の管理部の方まで目を向けることが出来る

『上の視点を持ちなさい』の魔力

この言葉が理解できていない私のように、 上の視点を持っていなかった人は、何を求められているのか理解できてない可能性もあると思います。

なかなか上の視点を持てない人がいたら、 『チーム』として何をするべきか を質問してみると、その人の悩みが見えてくるかもしれません。

【PHP】'1.0' == '1'がtrueだった。【210日目】

なんで起こるの?

比較に数値形式の文字が含まれる場合は、文字列が 数値に変換され

PHP: 比較演算子 - Manual

値をテストしてみた

>>> "a" == "0"
=> false
>>> "a" == 0
=> true
>>> "1.0" == "1"
=> true
>>> "1.0" == 1
=> true
>>> "1.0" === "1"
=> false

== を使う時は気をつけよう

“1.0” == “1"
=> true
“1.0” === “1"
=> false

比較演算子の動きを理解しないと、意図しない動作をしてしまうので、
文字列同士で比較したとしても、===を忘れない方がいいなと思いましたという共有でした。

【PHP】HTMLのclassを指定して要素を取得。DomCrawler【209日目】

こんな時に使う

<div class="aaa">
    <p class="aaa">aaaaa</p>
    <img src="/test/img.png">
</div>

これの、src部分 /test/img.pngが欲しい。

DomCrawler使ってみよう

これ使うと、CSSセレクタ使って取得が出来る。

簡単。見やすい。

■DomCrawler
https://symfony.com/doc/current/components/dom_crawler.html

テスト用コード

(Laravelでphp artisan tinkerとかしていただければ試せます)

use Symfony\Component\DomCrawler\Crawler;

$html = <<< EOF
<div class="aaa">
<p class="aaa">aaaaa</p>
<img src="/test/img.png">
</div>
EOF;

$crawler = new Crawler($html);
$srcs = $crawler->filter('.aaa img')->each(function (Crawler $c) {
return $c->attr('src');
});

結果

=> [
"/test/img.png",
]

【Laravel】url()->previous()で前のページが取得出来ない時の対応【208日目】

直前に見ていたページの取得方法はこちら

willow710kut.hatenablog.com

こんな時につかう

  1. 対象のページを初めて見た時
  2. 新しいページ、新しいタブで開いた時

この時は、直前に見ていたページが取得出来ない。
その時の対応をどうするか。

別なページをセットする

url()->previous('/error');

これで、取得出来なかった場合には、/errorのURLをセットすることが出来る。

引数ない場合何が起こるの?

元コード。

    public function previous($fallback = false)
    {
        $referrer = $this->request->headers->get('referer');

        $url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();
        
        if ($url) {
            return $url;
        } elseif ($fallback) {
            return $this->to($fallback);
        } else {
            return $this->to('/');
        }
    }

つまり、取得出来なかった時には、引数のURLをセットする。

引数がなかった時には、ドメインのTOPに飛ばされる。

slackで書いた書き込みを、GASで読み込ませる【207日目】

手順

  1. slackにアプリを入れる
  2. アプリの設定する
  3. GASのdoPostで受け取る

slackにアプリを入れる

  1. slackをカスタマイズを開く
  2. メニューからApp管理を選ぶ
  3. 画面上のApp検索で『webhook』とかで検索して、発信Webフックを追加する

アプリの設定する

  1. 設定を追加を選ぶ
  2. 『引き金となる言葉』 を設定
  3. URLにGASのURLを追加 (GASで公開→ウェブアプリケーションとして導入で出るURL)
  4. 設定を保存

f:id:willow710kut:20180508205149p:plain

GASのdoPostで受け取る

GASはdoPostという関数を書くとPostでアクセスした時に動く関数が作れるよ。

function doPost(e) {
  word = e.parameter.text ;
}

これで受け取れるよ。

引き金となる言葉が含まれているから、replace関数とかで削るといいよ。

【PHP】表示させたページに404のステータスコードをつける【206日目】

こんな時に使う

PHPでオリジナルの404ページを表示させたい。

で、ページが例外に入った時にオリジナルの画面を表示させたけど、
ステータスコードが200で正常に表示されている時。

このコード付け足す

header("HTTP/1.1 404 Not Found");

これでステータスコードが404になっています。

google chromeのNetworkの項目とかで確認してみましょう。