気軽にブログを楽しむ

大学生の日常

プログラミング奮闘日記 PHP編16

 今日も頑張っていく

ディズニーのBGMなんかをかけながらやっていこうと思います。

 

 

 

参考文献

 

毎度のことだけどしっかりと何を参考にしているか明記しておくよ

 

 

テックアカデミー教材

 

オンラインブートキャンプ PHP/Laravelコース

Googleさん

 

Google

 

 

 

以上

本日のメモ

Carbonを使ってみる

 

本日はまずCarbonを理解するところから始めようと思った。

 

どうやら日付の処理うを行えるものらしく、時間も〇〇分前などを容易に出せるっぽい

http://cly7796.net/wp/php/using-the-carbon-in-laravel/

 

分前は書かれていないけど英語的にminuteでいける気がした

 

 wherebetweenを理解したい!

wherebetweenがどうしても必要なので理解します

https://public-constructor.com/laravel-query-builder-where-clauses/#toc4

 どうやらカラムが持つ値に対して範囲検索をできるっぽいですよ…

 

ロールバックしなければ泣

 

最悪の事態が起きてしまった。

カラムをミスって追加してしまったのだが、downのところに全てのカラムを削除する設定にしてしまってるので、ロールバックするとそれら全てのカラムが一時的に全て消えることとなってしまう泣

 

それだけならば再び作ればいいだけの話なのだが…実はそのカラム追加のテーブルがcronコマンドと連携しているので、そのテーブルのカラムを全消ししてしまうとcronコマンドがどこに入ればいいかわからなくなりパンクしてしまうかもしれないのだ!

 

恐怖

 

追記:自分の成長に感動しました。ロールバックの仕組みが分かっていたので1分ほどで訂正できました

 

 

Carbonを使用するときの注意事項

僕はこのミスによって悪夢をみそうです。

 

Carbonを使ってバックトゥザ・フューチャーをしてデータベースのtimestampと何かしらの行動をする際に、気をつけた方がいいのが

 

Carbonを使用するとCarbonオブジェクトが帰ってしまうということです。

もしwherebetween行動をする場合

->format('Y-m-d H:i:s');

 

を付け足さなくてはいけません。

https://www.yuulinux.tokyo/16821/

 


Property [point] does not exist on this collection instance. とかいう死ぬほどうざいエラー

解決策↘︎

https://qiita.com/Eryushidate/items/27b4a699c00d06e04744

 

こいつのせいで1時間くらい悩まされた

 

結論をいうと、。。Eloquentでデータベースからカラムを取り出すときには用心しろってこと

 

全てget()で取ってしまうと単一のプロパティでないのでfirst()にすべきっている話

とりあえずいっている事はほぼ分からないが、黙っていう通りにする

 

プログラミング奮闘日記 Python編① list関連の強敵たち

大学の授業でPythonをやっているため一応これもメモしておこうと思った…。

 

 

わかった事をメモしていく!

 

 

今日わかった事

ミュータブルとイミュータブル

 

ミュータブル

値が変更できるもの

  • リスト
  • 辞書
  • 集合

 

イミュータブル

値が変更できないもの

  • 数値
  • 文字列
  • タプル

 

文字列がイミュータブルだと、文字列の中身を変える事ができなくなってまう

 

イミュータブルのものかミュータブルのものかしっかりと判別できるようにした方がいいっぽい

 

リストはほぼ配列な件

PHPを学習していたのでリストはほとんどリストと似ている事がわかった

 

 

タプルはイミュータブル

 

タプルはリストとほぼ同じだが、異なるのが変更できないイミュータブルだった

 

イミュータブルってPHPでいうconstみたいなもんかな

 

 

アンパックはタプルを取り出したい時に使う…え?

 

タプルの中から必要なものだけ入れたい時にはアンダーバーを使って空白にできるっぽいのだが、、、

 

だったら最初からミュータブルのリスト使えば?と思ってしまった。

まあきっと何かしらの理由があるのだろう

 

タプルとリストのコラボレーション

タプルのリストからタプルを取り出し、タプルの要素を取り出していくというのだ…

 

ナニ言っているかわからない

 

後でわかったのだが、

 

タプルの中にリストも作るという事だった!

タプルの中のリストを取り出し、そのリストから普通に要素を取り出すという事やった

 

enumerate関数

forと組んで、listを公開処刑するもの

 

zip関数

2つのタプルの同じ番号のものをまとめてくれるっぽい

 

なんかデータベースの結合に似ているような似ていないような

 

 

Pythonは謎が深いと感じた一日

 思っていたよりもPythonが他の言語と違う事を感じた

今から5時間後には20歳

 

ついに僕は5時間後に20歳を迎える。

 

今まで20歳になるまでにどんな人間になろうかと色々考えてきた。

 

19歳になった時にも本気で何かに取り組んで結果を出そうと考えこのはてなブログも始めた。

 

そんなこのブログも1年が経ち、その上に20歳になる。

 

 

 

20歳になると喜ぶ学生が大半をしめる。その理由はお酒が合法になったりタバコが吸えるようになったり、基本的に年齢制限にかかることが何もなくなるからだ。

 

 

でも20歳というのはその分すでに時間を使ってしまったということでもある。

 

このタームをあと4回やると人生を終えることになるのだ、その一歩をすでに踏んでしまうというわけだ。

 

 

映画「フォレスト・ガンプ」にはこんな名言がある「チョコレートの箱は開けてみるまで何が出てくるかわからない」

 

これは人生も同じ、この先何が起きるかはその時になってみないと分からない。

 

 

もうすぐ20歳になってしまう。僕は何かを達成することができただろうか?

 

そしてこの先は何が起きるというのだろうか。そんなことは分からない

 

でもこれを転機に何かが動き始めるかもしれない。

今日考えたアイデア#2 誰でもできる物を安く買う方法〜

今日考えたアイデアをアウトプットしていく記事です。

 

その場で考えた事なので、「それはこうした方がいいよ!」というのがあればコメントに書いていただけると光栄です。

 

前回の記事

 

www.captentheater.com

 

続きを読む

今日考えたアイデア#1 誰でもできる物を安く買う方法〜

 

今日考えたアイデアをアウトプットしていく記事です。

 

その場で考えた事なので、「それはこうした方がいいよ!」というのがあればコメントに書いていただけると光栄です。

 

画像を入れようと思ったけどめんどくさいので辞めました。画像あったほうが読みやすい場合は言っていただければやります〜

続きを読む

プログラミング奮闘日記 PHP編15 暗黒のロールバック

 

さあ本日もLaravelと死闘を繰り広げていきます。

 

⤴️なんのこっちゃわからない人は1から見てもらえればわかるンゴよ

 

www.captentheater.com

 

 

参考文献

 

毎度のことだけどしっかりと何を参考にしているか明記しておくよ

  

 

テックアカデミー教材

 

オンラインブートキャンプ PHP/Laravelコース

Googleさん

 

Google

 

 

 

以上

 

マイグレーションのロールバック祭

マイグレーションのカラムを追加したくて新しいマイグレーションファイルを作成したのだが(理由としては、もしロールバックしたくなった際に新しいファイルを作成しておけば、down()のところにカラムを削除するソースを打つだけで、そのカラムだけ消えてくれるから)

 

 

このカラムちがくね?

 

と思ったので、再びロールバックして直すを5回繰り返した。

 

果たしてこれでもしっかりとテーブルにカラムは追加されているのだろうか???

 

成功!!

 

おそらく僕の伝え方が酷すぎて何を言っているのかわからないと思うが共に喜んでくれたら嬉しい。

 

 user_idなんて嫌い

データベースのカラムには多く登場するuser_idだが、俺はその本質を全く捉えていなかった。

 

Laravel内でuser_id とuserテーブルのidを繋げるのはhasmanyを使用するものだと思っていたのだが、なかなか上手くいかないエラーエラーエラー。

 

あとでわかったのだが、user_id にAuthで認証している現在のUser_idを入れレバおけまるだったらしい。

 

早い段階で気づくことができて満足。

 

 

 

 

今日はあまり明記することはできなかったのだが、物凄い成長を感じた。

 

 

次の時には

 

whereBetweenについて調べて、ゲームが完成する予定。

 

 

プログラミング奮闘日記 PHP編14

 

プログラミング5ヶ月目にして泣きそうです。

 

とにかく分からない単語が野生のポケモンのように出てくるので、毎度毎度メモしておこうと思います。

 

ちなみに合っているかどうかは確かではないので、あまり参考にしないであげてください。

 

ちなみにPHPでLaravelに苦戦中です。

 

 

strtotime関数

timestampを特定の場所の未来や過去を表示できるっぽい。

 

例えば、timestampの1日後や1時間後などを表示できるらしい…

https://ysklog.net/php/2094.html

これをみる限りそんな感じ。

 

公式をみてみるとこんな感じで使っている⏬

<?php
echo date"Y-m-d"strtotime"2009-01-31 +1 month" ) ); // PHP:  2009-03-03
echo date"Y-m-d"strtotime"2009-01-31 +2 month" ) ); // PHP:  2009-03-31
?>

 

上の方はおそらく2月が28日だったことを表したいのだろう。

 

LaravelではBlade.phpが優先的 

 

いや今更!

 

という情報ですが、Laravelの場合、index.phpとindex.balde.phpだとbladeが付いている方を優先するそうです。

 

まあLaravel特有のものをそりゃ優先にしますわな。

 

ヘルパー関数とヘルパ関数って違うの?

 

Laravelの参考書に突如出現したヘルぱ関数

  

 

僕自身ヘルパー関数というものは度々耳にすることがあったが、読んでみると僕の思っていたものと違う。。。

 

どうやらCSRFと呼ばれるウェブ攻撃の対策のために用意された関数らしい、

 

トークンという非表示フィールドを追加して、それが正しいフォームだけを受け付けるようにする

というLaravelでフォームを作成する時に使用するものらしい。

 

とは言ってもテックアカデミーでフォームを作成した時にはこんなことしなかったんだけどなあ。

 

Laravelで初のテーブルのカラム変更に挑むへなちょこ

自身が作成していたものに新しいカラムを追加しなければいけないことがわかってしまったので、

https://qiita.com/usaginooheso/items/6f307a15b5f7d5dd981f

この記事を参考にカラムを追加してみた。

 

ただ追加してマイグレートしても全く問題ないと思ったのだが、なんかこの記事にはロールバックする時にだるいぜ

って書いてあったのでやめた

 

やった後にテーブルを確認したところ、しっかりと追加されていたので一安心。

 

 

Boolen型ってやったらtinyint(1)とかいう意味不明のデータ型に変更された件について

 

先ほどのカラム追加のデータ型をBoolen型にしたのだが、マイグレートした後に追加したカラムをみてみると

 

tinyint(1)と書いてある!

 

もうさっぱり分からなかったのでググってみたところ

 

https://blog.s-giken.net/29.html

 

👆どうやら0と1で表示してBoolen型のようにしているらしい。

 

詳しいことは分からないが問題はなさそう…。

 

hasmanyリレーションとの対話 

 

 

テックアカデミーに行ったくらいで調子に乗っていた僕はhasmany関数でリレーションを普通に行っていたものの意味がわかっていなかった。

 

だから今絶望している。

 

簡単にいうと1対多の関係を持ったものにこれをする。(語彙力)

 

とにかくリレーションについてまず調べなければ…。

https://qiita.com/miriwo/items/b44c8299c218fc367613

 

5秒で思い出した。(データ間の関係のことや!カッコつけやがって…)

 

 

数秒後…

 

わかったぞおおおお

 

hasmanyリレーションをすることでデータ間の持ち運びがめっちゃ簡単にできるんや!(説明むずい)

 

 class User extends Authenticatable {

省略…

public function tweets() {

return $this->hasMany(Tweet::class); }

}

 

例えば…上記のように

Userというテーブルと

Tweetというテーブルをhasmanyしておくと

 

そのユーザーのしたTweetが

$user->tweets  で繰り出すことが可能となるのでアール。

 

 

こいつは役に立ちそうだぜ…

 

 

とりあえず本日はこんな感じ。。。

 

 

明日も精進いたします。

 

 

Laravelやるなら買っておく本

 

運営元:kaiseiblog