【Laravel】既読処理をやりたい
備忘録です
やりたいこと
Laravelで管理者からユーザー全体に送ったお知らせをユーザーが確認した時、既読したことを判断したい
未読のものには未読バッチをつけたりして通知したい(今回は蛇足なので割愛)
テーブル
今回はMySQLで作ってます
お知らせテーブル(notification)
id | int | PRI | NULL | auto_increment |
---|---|---|---|---|
title | varchar(255) | NULL | ||
content | text | NULL | ||
period_start_at | datetime | NULL | ||
period_end_at | datetime | NULL |
既読テーブル(read)
id | int | PRI | NULL | auto_increment |
---|---|---|---|---|
n_id | int | NULL | ||
u_id | int | NULL |
必要なテーブルはお知らせの内容が入っているお知らせテーブルと誰が既読したかを管理する既読テーブル
既読処理
お知らせ一覧画面からお知らせをクリックした時にお知らせの詳細ページに行くようにして
その際に既読処理をしたい
一覧画面や詳細画面は割愛して
処理だけ書きます
NotificationController.php
<?php namespace App\Http\Controllers\User; use Illuminate\Support\Facades\Auth; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\DB; class NotificationController extends Controller{ public function read($n_id){ $u_id= Auth::id(); $readedCheck = DB::table('read')->whereRaw('n_id = ? and u_id = ?' , array($n_id,$u_id))->exists(); if($readedCheck == null){ DB::table('read')->insert( ['u_id' => $u_id, 'n_id' => $n_id] ); } } }
<?php DB::table('read')->whereRaw('n_id = ? and u_id = ?' , array($n_id,$u_id))->exists();
これでクリックしたお知らせをユーザーがすでに既読しているかどうかを判別しています
判別して未読だった場合
ユーザーのidとお知らせのidをレコードに追加します
おまけ
今回作ったお知らせには公開開始期間と公開終了期間が設けており公開終了期間が過ぎたら一覧画面から消える仕組みになっています
公開終了期間が過ぎたお知らせの既読情報を持つ必要はないので終了期間が過ぎたもののレコードは削除するようにします
<?php $u_id= Auth::id(); $periodEndNotificaitons = DB::table('notification')->where('period_end_at','<',$today = new Carbon(Carbon::now()))->get(); foreach($periodEndNotificaitons as $end){ if(DB::table('read')->where('n_id',$end->id)->where('u_id',$u_id)){ DB::table('read')->where('n_id',$end->id)->where('u_id',$u_id)->delete(); } }
お知らせテーブルの公開終了日時(period_end_at)と今の日時を比較して公開期間が終了したものを抽出
抽出したものをforeachで一つずつ回して既読テーブルにあるものは削除します
もっとスタイリッシュにするやり方があるかもしれませんが自分が考えたやり方をご紹介しました
脱もやし宣言
先日、ジムの体験入会を1日して入会をしました
テストステロンさんの本を読んで影響されて
去年の今くらいの時期から筋肉をつけたい、ジムに行きたいってずっと思ってたんだけどお金とか時間とかを言い訳にして入会できなかった
そんなこんなで1年くらい行きたい欲を引きずってきたんだけどこの3連休何も予定がなくてひまだったから入会うんぬんは置いておいて体験だけでもしてみようかなってことで行ってきたんですよ
朝から夕方まで
プログラムに出たり器具を一通り使ってみたりプール行ったりして体を動かしてきたけどすごい楽しい
動けなくなるまで体動かして体験が終わった(死)
(普通、朝から夕方まで6時間もジムで体動かしてるやついないだろ)
へろへろになりながら受付で料金プランとかを聞くことに
どうせ高くて入れないだろうから適当に聞き流して帰ろうとしてた
今月の間に入会するとどのプランでも2ヶ月間は1980円ですよ
!!!????
9月はもう半ばですので日割りになりますね。今だと999円です
!!!!??????
今回お二人(彼女ときた)で体験されてお二人様とも入会されるならペア割で来月から3ヶ月間1000円引きになりますので10月の会費は980円ですね
!!!!!!!!!???????!??!?!?!??!
即入会しかけたけどうまい話には裏があるだろう
どうせ何ヶ月間か強制的に入ってないといけないとか通常料金が糞高いとかだろうなと思ってその辺も聞いてみたけど
・退会はいつでもいい(退会金はない)
・どんなプランでもどんなオプションをつけても2ヶ月間は1980円均一
・2ヶ月間のキャンペーンが終わる時に別のプランに変更してもいい(変更代はかからない)
んー悪いことがない.....
よし、入会しよう
ってことで入会しました
最近、彼女から棒切れとかもやしって言われるんで頑張って言われなくなるくらいにはなろうと思います
YOUはナニやってたの?【後編】
前回の記事から1ヶ月遅れで後編になります笑
続き書いていきますよ〜
2019/4~2019/6 初現場
入社1ヶ月目にして現場での常駐案件が始まりまった。
果たして僕はこれから一生SESとして生き続けていくのだろうか...
結論から言うと2ヶ月で会社ごと辞めました。
やめた理由ですがいろいろあるんですよ。
・開発環境
・契約
・働き口が見つかる
3つしかなかった笑
ひとつずつ説明していきます
開発環境
今まで個人アプリを作ったりWebアプリを作ったりしてましたが全部1人です。
チーム開発は初めての経験なのでついていけるのか不安....
私が最初に配置されたチームのメンバーは6人、PMの人を除き残りはみんなSESだったらしいです。
さて一体どんな開発環境だったかと言いますと
1つ目は振られたタスクのスプリントが長すぎる。
初めての現場でさらに入社2ヶ月目ってことを配属先の会社が知っていたこともあり初めは簡単なタスクが1週間くらいのスプリントで振られていました。
すぐに終わって新しいタスクもらおうと思い、2日くらいで終わらせPMに
「振られたタスクが終わったので他にないですか?」と聞くと
「まだスプリント5日あるからソースコード見たりして勉強してて」と、
「わかりました(まぁ初めの週はこういうものなのかな)」
3週間後
「1週間で振られたタスク終わったんですけd...」
「勉強してて」
「....」
2つ目はsubversion
バージョン管理ツールはGitしか知らなかったんですがそこで使われてたのはsubversionなるもの。
subversionってローカルリポジトリがなくてコミットしたらGitでいうプッシュと同じ状態になるんですよ。しかもブランチもきれない。
めっちゃ使いにくかったです。
3つ目は席
なぜかチームメンバーの僕を除く他5人の席は固まっているのに僕だけすごく遠かったです。
右も左もわからず初めての現場で色々聞きたいことがあってもわざわざ歩いて聞きに行かなきゃならないし勝手に話合いが始まって仕様が変わって作った機能を次のmtgで
「こここの前話し合って無しにしたからもういらないよ」って
まあ他にもいろいろ思い返せばあると思うけど主にはこの3つが要因ですね
契約
契約というよりは約束???
口約束を信じすぎないように
はじめAndroidの自社開発をやらせてくれるって話を聞いて入社したんですが別に業務内容が[Android 自社開発]って書いてある契約書を書いたわけでもなく社長との口約束だったので結果Webアプリの常駐案件になりました。
常駐先との面談の前は社長に
「合わなかったら1ヶ月で常駐やめることもできるから」っていわれ実際1ヶ月半すぎたくらいで
「ちょっと合わないかもしれないですね」って行ったら
「がんばれ」
働き口が見つかる
これが一番やめる理由になったのかな
ずっとこの会社にいるつもりは最初からなかったので働きながら次の働き口を探していたのですがいろいろしてたら働けそうなところができちゃった
1つはセブ島に語学・プログラム留学してくる日本人にプログラムを教える講師のお仕事
2つ目は都内のベンチャー
どちらも内定がでていていろいろ迷って2つ目の方に決めました。
こんな感じで僕の1社目は幕を閉じたのですが未経験の僕を採用してくれたことには感謝してるし学べるものも多かったです。
SESという業種がどういうものか身を以て体験できたし社会において口約束はなんの効力も持たないと分かったしいけいけな開発してるところもあればそうじゃない開発してるところもあると知ったし。
2019/7~現在
そして今ですよ。
やってる内容は自社開発で今はまたwebアプリ何だけどAndroidアプリの開発もしてるのでそちらにも携われるように契約書には[WebアプリおよびAndroidアプリ開発]と書いて契約が交わされている。(ぬかりない)
そして初めてリリースしたAndrouidアプリのうどんmapから1年経ったことだし今2作目を開発中です!!
こんな感じでブログ更新してない空白の期間をダイジェストでお届けしました。
これからはもうちょっと更新頻度上げていけるようにがんばるね。
YOUはナニやってたの?【前編】
最後の投稿から軽く半年以上経ってますね笑
おひさしぶりです。生きてます。
最後に投稿した2018/11から今日までをダイジェストでお届けしようと思います!
2018/11〜2019/2 就活
この時期はインターン入社していた会社から唐突に「10月いっぱいで終了だから」と告げられニートをしながら就活をしていました
個人で開発したAndroidアプリと少しだけ関わらせていただいたWebアプリの業務経験を手にあらゆる会社にエントリーしては書類で落とされる毎日
エントリーしていた会社は大中小企業さまざまなのですが漠然とSES系はいやだという思いがあり全部自社開発のものばかりでした
でも10社エントリーしても20社エントリーしても書類が通らずそこで自分にはまだ自社開発で必要とされているスキルがないことを悟りました
結局インターン入社(人材紹介業)していた会社の社員に泣き寝入ったところそこから自称自社開発もやってるSES会社を紹介していただき内定をいただくことができました
11月から3ヶ月も無職の期間があってめっちゃ焦ってたのでSESだろうがなんだろうがとにかく職につけてよかった
2019/3 はじめての社会人
3月から社会人になりました。
入社する前の面談では会社で自社開発をするか派遣先でSESをするか選ばせてくれたので自社開発を即決
WebアプリとAndroidアプリの開発経験からどっちがしたか聞かれたからAndroidをやりたいっていったらいい先生がいるよって言われてなんかいい感じの流れ
なんだよ〜私でも自社開発いけるじゃ〜ん!
入社1日目
社長「あした面談だからね」
!?!?!?!?!?!?
入社2日目
!?!?!?!?!?!?!?!?
入社3日目
社長「おめでとう昨日の面談受かってたよ。4月から頑張ってね」
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
まさかの入社3日目にして派遣先の現場が決まり晴れてSESデビューが確約
自社開発は?????Androidは????????
「未経験からでもOK」が売りのSES業。
現場に飛ばされるのは嫌だけど未経験を取ってる分、研修は手暑いんじゃないかなぁなんて期待してたんだけど....
結局1ヶ月で学んだのはmarkdownの書き方、そしてエイプリルフール用のサイトページの作成
そして不安を抱えながら現場へ
まだ半分しか書けてない...
続きは次回書きます
さて次回!私は派遣先から生きて帰ってこれたのでしょうか!?
ヤンキーインターンで学んだこと
最後の投稿から4ヶ月も空いてるというだいぶ久しぶりの投稿です。
ふと今年ももう少しだなと思い、この1年をを振り返っていて1番影響の大きかったヤンキーインターンについて改めて考えたのでお話します。
※ヤンキーインターンとはなんぞや???という方はこちらの記事をお読みください
今までの自分を大きく変える3ヶ月間になったのですが一体何が変えるきっかけとなったのか....
今の私が思う最も変わるきっかけとなったのはマインドの育成です!!
広島で大学生をしていた時、ろくに大学は楽しくないしやる気が出ないからといって家にこもりゲームばっかりしていた私が上京してから学ぶことの楽しさを覚え、あらゆる価値観を知り、見違えるような人間になれたのはマインドの変化が原因だと思うんです!
じゃあ何がマインドを変化させたのか?
1.環境の変化
広島では一人暮らし、香川では家族で暮らしていたので初対面の人たちと同じ屋根の下で暮らすことにははじめすごい抵抗がありましたが、シェアハウスで一日中共にすることによってすぐに友達になれ、友達の考えや心境を聞くことで価値観の幅が広がりました。それに、共同生活なので掃除などのルールを考えたりしてチームワークやリーダーシップも自然とついたんだと思います。
2.覚悟
大学を中退してダメな自分を変えなければいけないという覚悟をもって上京してきたのでインターン研修を真面目に受けることができたんだと思う。
大学時代は親のお金で入ったにもかかわらず、適当に選んだ大学で適当にすごしてた(こうう大学生多い)ので、入った意味がなかったも同然
3.東京での貴重な体験
東京は地方では味わえないさまざまなイベントがあったり人と出会うことができるので人との繋がりが今までの何倍も増えた気がする。そのおかげか積極性、多様性なんかを身に付けることができたんだと思う。
4.メンターの存在
ヤンキーインターンのハッカーコースでメンターをしてくれたMr.パッションこと三浦さん。彼にものすごくお世話になったと思う。
三浦さんは私より年が2つ上だけどすごい密な人生経験をしていて近い年頃だとは思えないほどの人生観だったり受容性を持っているので彼の言葉には救われるし学ばせていただくことがいっぱいあった。三浦さんに出会えたことがヤンキーインターン一番の収穫だったと思う。
大きく分類してこの4つが私のマインドを成長させる要因だと思う。
もちろんハッカーコースというのだからプログラミングなんかも上達した。大学時代とは比べ物にならないスピードで理解してレベルをあげることができた。
でもそれはマインドの成長があったからであって大学にいってる時と変わらないマインドだと上京してプログラミング学んでも大して技術も理解も上がってないと思う。
心が成長すると自然と他のものもついてくるってことを実感できた。
ヤンキーインターンがマインド面に対して最優先に情熱を注いでいたことに感謝しています。
今後のインターンもどんどんマインドの成長に力を入れていってほしいものです。
「よそもので、ばかものな、わかもの」は強く変わりたいと思っても何をしたらいいのか、どんな心得がいるのか、そんなものがわかってない人が多いので社会の広さや学びの楽しさなんかをどんどん教えていけるカリキュラムであればスキルは自然とついてくると思う。
現に私はそのおかげで今は仕事ができているし、インターン中に学んだことは今も役に立っている。
大切なことをたくさん教えてくれてありがとうござます。そしてもっともっともーっと精進して参ります!!!
無思考になるな!
5月に参加したインターン研修も残り1週間を切りました
提供してくれたプログラミングのオンラインカリキュラムも終わり、アプリ研修もなんとか終わり7/20にリリースできていよいよこのインターンも終わりなんだなぁっと
最近はそんなことを感じながらぼーっとしがち笑
しかし”もう”1週間ですが”まだ”1週間は研修があります
やらなければいけないことが終わった今、残りの1週間をどう過ごすべきなのか?
今一度考えなおしてみようと思います!
そして今何となく生活してしまっている人たちもこの記事を通して自分の生活を見つめなおしてこれからの過ごし方を考えてみましょう!!
目的意識とモチベーション
なんとなくの生活を脱出するためには目的意識を持つことが大切だとかんがえます
目的意識とは?
自己の行動の目的について明確な自覚。
なんて書かれています
つまりは今自分が行ってるタスクが自分の中で「何のためにそれをするのか」明確になっていて落とし込めているということですね
そしてモチベーション
モチベーションはモチベと訳されたりして知ってる通りやる気のような意味合いで使われてます
目的意識の持ち方とモチベのあげ方
では、どうすれば目的意識を持ったりモチベーションを上げて日々を過ごせるのか?
2つの方法があると私は考えてます
①:初心に返る
なぜわたしはこのインターンに参加したのか?このインターンによって何を得たいのか?といったように何かをするときに初めに持っていた目的を思い出すことが1つ目の方法です
毎日研修を行ったり会社で働いているとどうしても当初に思っていた夢や目標を見失いがち・・・
そんな時に1度振り返ってみると今行ってるタスクも作業にならず意味を持って行える!!
②:メリットを考える
タスクをこなす上で自分にとってこのタスクにどんなメリットがあるのかと考えることでもくっ的意識を強く持つことやモチベーションを上げることに繋がってくるでしょう
メリットを考えることでそれを得られるために頑張れたり、そのメリットから目的が生まれ目的意識を持つことが考えられます!
無思考になるな
自分なりのモチベーションや目的意識を持つ方法を2つ上げましたが2つに共通して言えることは思考するという事
考えることが必要という事
逆にただ日々をぼーっと過ごしていてタスクを作業のように行っている人は頭が働いていないため何のために働いて何のために生きているのかわからなくなり、唐突に不安に襲われることがあります
実際わたしも大学時代にそうなっていました
まとめ
今回の話を踏まえ、皆さんの生活はどうですか?
何気なく無思考に過ごしてしまっていませんか?
無思考にならず思考を続け、習慣化するためには日常に”なぜ?”を持つことが大切です!!
いつも見慣れた風景も少し見方を変えるだけでそこら中に疑問が転がっています
常に疑問を探して考えて答えを見つけてみてください!!
それが習慣となればモチベーションのコントロールや目的意識を持つことは自然とできるようになります!!!
思考の絶えない日常を過ごしましょう!!
ヤンキーインターンってなんやねん
今回は前回の記事で少し触れたわたしが今参加しているヤンキーインターンというインターン
についての紹介をしたいと思います!
ヤンキーインターンとは?
- 中・高卒の18~24歳であること
- 東京以外の地方出身であること
Which do you choose?
ハッカーコースってなにすんの?
- プログラミング学習
- アプリ研修
- マインド研修
シェアハウスでの生活
- 様々な価値観との出会い
- 共同生活での協調性
- 仲間意識
地方から様々な理由できた同年代の仲間たちから得られる様々な価値観やその仲間たちと共に
過ごすための仲間意識や協調性は社会に出た時ぜったいに役に立つ!!