エンジニアのひよこ_level10

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

Laravelで多対多のリレーションを組む【71日目】

f:id:willow710kut:20171223184135j:plain

多対多とは

ある人は、いくつかのグループに所属しています。
あるグループは、いくつかの人で構成されてます。

これが多対多です。お互いが複数の対象を持ってますね。
これをデータベースで表現すると、中間テーブルと言うものが必要です。
データベースだとこんな感じ。

menbers
id|name
1 | ういろう
2 | りんご
3 | マジシャン
groups
id|name
1 | 野球部
2 | 麻雀部
3 | ダーツ部
member_group
id|member_id|group_id
1 | 2| 1
2 | 2| 3
3 | 3| 3 
4 | 3| 2

野球部(group_1)は、りんご(member_2)が所属している。
マジシャン(member_3)は、麻雀部(group_2)とダーツ部(group_3)に所属している。

こんな感じの意味になります。

Laravelでリレーションを組むには?

参考 Eloquent:リレーション 5.1 Laravel

結論
belongsToManyを使う。

class Member extends Model
{
    /**
     * memberが属するグループを取得
     */
    public function groups()
    {
        return $this->belongsToMany('App\Group');
    }
}

この時、中間テーブルの名前がmember_groupとは異なる名前の時は、

class Member extends Model
{
    /**
     * memberが属するグループを取得
     */
    public function groups()
    {
        return $this->belongsToMany('App\Group', 'other_table');
    }
}

日記

ゆっくりと記事書けるのいいね。
他にもネタがあるのでゆっくり消化しよう。

そういや、ザ・シークレットが面白いと聞いたので見てみた。最初は宗教かな?通販かな?って感じだったけど、 5分したらなるほどそういう話ね。ってなった。

新しいことをする時。0と1は大きな違いがある。【70日目】

日記継続してますね。

私の日記も70日目になりました。

3ヶ月目に入っていますが、我ながら毎日更新よく続いていると思います。

なぜ続いているか

それは、続いてるから。

ここまできたらやめたくないじゃないですか。そのモチベーションはわかると思います。

続けるコツは?

一日でも何も投稿しない、0を作らないこと。

ただの日記でもいい。一日でも書かない日が出たら、
ガクッとモチベーションが下がると思います。

現に、今運動のモチベーションが下がってるのでちょっと対策打たねば・・・

日記

つまり、この記事ですね!時間がない!

技術系の記事を書きたい。でも、書く時間がない!ってことで、とりあえず日記を書く。

記事の価値は普段が100なら今は10くらいの価値だと思います。でも、0じゃない。

だからとにかく毎日やることが良いんだと思います。

ってことで今日のお話おしまい。

仕事は「楽しむ」「休む」「ワクワクする」を大切に【69日目】

最近忙しいけど楽しい!

ブログ書きたいネタはあるけど書く時間がないいいいいいいいいい

タイトルは書いたけど、詳細はなし!何かを感じてください!

日記

ってことで、忙しくて日記書く時間がとれないですが、
最近は体調も崩さずに元気にお仕事頑張ってます!

楽しんでやるお仕事、ワクワクするお仕事

そういうのって、やっぱり力が湧いてきますよね!

でもまあ、人間の体なので限界はあるわけで。
無理せず、楽しんで、休みながら、頑張りましょー!

そんな私は昨日が休憩の日でした( ´∀`)

運動

出来てないいいいいいい
家から出る時帰る時ちょっと走るくらい。(徒歩5分くらい

Laravelでリレーション先のカラムでwhereする方法【68日目】

f:id:willow710kut:20171220232659p:plain

参照元

Eloquent:リレーション 5.1 Laravel

手法

$posts = Post::whereHas('user', function ($query) {
    $query->where('name', 'uirou');
})->get();

これでuserのnameがuirouPostを取得することが出来ます。

前回間違ったものを書いたので訂正。

日記

私がブログを書き続けるきっかけになった方と飲み、もとい、飯に行ってました。

時間を忘れてお話してた。
本当にいい時間でした……!

■一番印象に残ってるお話は、エンジニアではない人とのコミュニティ。
ラソンランナーでもいい、ゲートボールでもいい、別分野で活動してる人との交流することで、
『こんなことできるの!?』ってお互いが発見して一人じゃ思い浮かばなかったサービスが出来上がったりとか。

■あと、私が今いる環境って恵まれてるんだなって。
刺激を受けることができる環境。本当に周りの人に感謝。

■ここでは書ききれないけど、未来の話はすっごくワクワクしたよね!
このたくさんのワクワクのために私は今生きてるんだなって再認識できた!良いモチベーション頂いた!

書きたい記事が貯まってきました!【67日目】

でも時間が足りない!

今日一日でめっちゃ勉強になったのでメモ

  • ガベージコレクション
  • 参照されなくなったら消えるよ
  • クロージャは宣言されたその時の環境を保持する
  • Laravelの多対多の関係とは。そして書き方。中間テーブル
  • wherehasの使い方
  • スコープチェーン
  • プロトタイプチェーン

日記

リーダブルコードでクロージャガベージコレクションのお話を再勉強。

そこら辺でいろいろあったこと日記に書きたいけど時間なし。

今日の運動

むりむりむりむりかたつむり

(仮)Laravelでリレーション先のカラムでwhereする方法【66日目】

参照元

Eloquent:リレーション 5.1 Laravel

手法

$users = App\User::with(['posts' => function ($query) {
    $query->where('id', 10);
}])->get();

これで、postsid = 10を書き込んだユーザーが取り出せる。 思いっきり間違えてました。正しくはこちら。

willow710kut.hatenablog.com

(仮)な理由

ドキュメント読んでたらこんなん見つけた

$user = App\User::find(1);

$user->posts()->where('active', 1)->get();

あれ……?

っと、これらの違いとかしっかりわかってるわけじゃないので、自分の中に落とし込めたら改めて記事を書くつもり。
まだ自分でも試してないしね。

後者はユーザーの方のactiveを参照してるのかなどうなのかな。

日記

余裕を持って行動すると、全部がいい感じに進んでる気がする。

余裕を常に持つってなかなか出来ないから、ちょっと考えて生活しなきゃ。

だいたいは余裕ある時も、未来に対して焦って何かするせいなんだけどね。

難しやー

今日の運動

エアロバイク 3.0km 今からやる!

CSSでループの最後のクラスにだけmarginをつける方法【65日目】

結論

.classname:last-child { margin-bottom: 10px }

参照

www.htmq.com

どんなときに使う?

例えばLaravelのblade書いてる時に

@foreach($items as $item)
<p> {!! $items !!} </p>
@endforeach

この時、最後の段だけ、下に空白を入れたい時に使う。
foreachとかで、最後だけCSS……最初だけCSS……みたいな時に使うといいと思う。

日記

そういやもうブログ3ヶ月目なんですね。よく続いてるなーと思う反面、まだ2ヶ月なんだなって。

1年は最低でも続けたいし、そのためにはあとこの6倍の量書かなきゃいけないとか\(^o^)/
まだ始まったばかりですね!

でも、結構いい効果出てるので、これからも頑張りたいところ!

今日の運動

エアロバイク 3.0kmを今からします!

Bootstrap3で中央に配置する方法【64日目】

Bootstrap4の場合はこちらを参考に

書き方が違います。その場合はこちらを参考に(‘ω‘ )

www.nyamucoro.com

結論

classにcol-md-offset-3 col-md-6とか.col-md-offset-4 .col-md-4と書く

ドキュメント

getbootstrap.com Offsetting columnsのところ。ctr+fで文字列検索でどうぞ!

正しくはブランク配置だけど。

Bootstrapは12カラムでブロックを配置しています。

.col-md-offset-3とか書くと、左に3カラム分空白が出来ます。

つまり、.col-md-6 .col-md-offset-3なら
3 6 3となって中央に。
.col-md-4 .col-md-offset-4なら
4 4 4となって中央になると。

結果的に中央になります。

日記

最近、集中出来る時と出来ない時の差をさらに強く感じるようになった。

自分に余裕がある時は集中出来るのは当たり前だから、
これを上手く操作したいところ。

今日の運動

エアロバイク 3.0km(この後もやるから、増えるかも)