エンジニアのひよこ_level10

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

Laravel

【SpringBoot⇔Laravel】環境構築。SpringBootを学んで、Laravelと比べてみる【837日目】

SpringBoot始めました ちょっと気になってたSpringBoot。 最近Javaが出来る人が近くに増えたので、教えてもらうことにしました! ということで、まずは環境構築をしてみました。 環境構築 やったことは、こちらの記事を参考にして始めました。 qiita.com 私…

【Laravel】View Composerの使い所【805日目】

View Composerという機能 Laravelには、View Composerという機能があります。 readouble.com 便利なのですが、いつ使ったらいいかな?っていう記事がなかなか見つからず、 PHPユーザーズの方々に教えてもらって、何となく自分なりに理解したことをφ(・・ View …

【Laravel】CSSやJSを統合・圧縮して、サイトを軽くする【802日目】

サイト速度のためにファイルを小さくする? ファイルを合体させます。加えて、改行など動作に無駄なものを削ります。 よく、ライブラリとかで ○○.min.jsとか見たことがあると思います。 そして、これらが一行の長いファイルだったのをみたことがあると思いま…

【一週間振り返り】仕事に集中できた一週間【800日目】

もうそろそろ年越しですね。 皆さん、忘年会には行かれましたか? 私は会社の同僚とお酒を飲みに行ったのですが、普段は混んでないお店でしたがまーあ混んでました。 先週が長期休暇前を除く、最後の金曜日だったからからかもしれませんね。 さて、10連休に…

【Laravel】クエリビルダのorWhereは順番に注意【796日目】

orWhereを何も考えずに書いた悲劇 何気なく書いたクエリビルダ。 何も考えずに書いたorWhere。そこに悲劇が。 orWhereの順番を入れ替えてみた \App\Models\User::select('id', 'name') ->where('status_id', 1) ->orWhere('id', 2) ->where('status_id', 3) …

【Laravel】Modelクラスから値を取る時には3種類の要素が関わっている【795日目】

Modelクラスで値を取るのは3種類ある? $user->category こんな感じに値を取る時に、Modelクラスは何をしているでしょう。 この時の値の取得方法は、3種類くらいあります。 そして、それぞれ優先度があります。 優先度の高いものがあれば、それを返して、な…

【Laravel】6.xからバージョンが進むのが早い理由と、バージョンアップのやり方【790日目】

Laravelアドベントカレンダー12日目 Laravel Advent Calendar 2019 - Qiitaの 12 日目の記事です。 先日はおかしょいさんの日本の Laravel 関連コミュニティまとめでした blog.okashoi.net さて、アドベントカレンダー12日目を取り続けてもう3年目です。 1年…

【Laravel】inputタグで配列でoldを受け取るときの対応【788日目】

配列でinputタグを作った <input name="xxx[0][name]"> こんなふうに配列でnameを作成すると、取得時も配列で手に入る! さて、 old('xxx[0][name]')って書いて・・・あれ、動かない・・・ oldはドットで繋ぐ old('xxx.0.name') こう書くのね・・・元コード追ってようやく気が付きました…

【Laravel】getXxxAttributeに対するpluckの挙動【784日目】

pluckで、独自フィールドを使いたい public function getDisplayUsernameAttribute() { return $this->nickname ?? $this->username; } こんな感じに、display_usernameという値を使いたい。 ニックネームがなければ、ユーザーネームを出すという挙動。 これ…

【Laravel】FormRequestクラスで、複雑なバリデーションをしたい【783日目】

FormRequestクラスで、複雑なバリデーションをしたい このリクエストしか使わないので、独自バリデーションを作りたくない かといって、Controllerとかで受け取って処理するのは、別の場所に関心を増やすから嫌だってことで。 インスタンス取得時に追加 /** …

【Laravel】独自コマンドをPHP内でオプション付けて実行したい【780日目】

独自コマンドを作った 独自コマンドで以下の様にオプションを設定した。 protected $signature = 'command:xxx {--ids=*}'; これをコンソールで実行するときは php artisan command:xxx --ids=1 --ids=2 --ids=3 これを他のphp上でで呼び出したいが、どうや…

今日のイベントをDBから取得するためのクエリ【776日目】

今日行われるイベントを取得したい 今日(2019-11-28)のイベントをDBから取得したい。 じゃあSQLで whereを使って、今日と等しい値を取ればいいかというと、 時、分、秒の都合で、今日と等しい値を取るのは難しい では間を取ろう なので、今日の最初と最後の…

【Laravel】クエリビルダでcount関数を動かす【773日目】

あるデータの個数を調べたい DBのデータの個数を調べたいときはあると思います。 ある条件で絞ったときの、対象のレコード数とか。 データ取得後なら? $users = \App\Models\User::get(); $users->count(); こんなふうに、データを取って、取った値をカウン…

【Laravel】ヘルパ関数を使った時のshouldRecieveのwithの落とし穴【762日目】

ヘルパ関数を使う route('user.mypage', ['id' => 1]); これのテストコードを書きたい。 動かないコード こんな感じの書いた時、routeはURLファサードで動くので、こうなる気がする URL::shouldReceive('route') ->with('user.mypage', ['id' => 1]) ->once(…

【Laravel】サービスコンテナでbind出来ない問題の対応【735日目】

サービスコンテナでbind $this->app->bind( 'App\Services\XxxServiceInterface', 'App\Services\XxxService' ); public function __construct(XxxServiceInterface $xxx) { $this->xxx = $xxx; } これでbindしておいたのに、XxxServiceInterfaceがインスタ…

【Laravel】Hasherの拡張と、info関数の実装【725日目】

Hasher github.com LaravelにはHasherという機能があります。ハッシュ化のクラスです。 バージョンアップ 5.6から、Hasherのインターフェースにinfo関数が追加されました。 クラスの拡張するなら、これも拡張したい。ってことでどう拡張するか。 元コードの…

【PHP】改行文字を<br>に変更して表示させる【721日目】

改行を使いたい 画面に文字を表示させたい。 このとき、DBなど外部から改行の入った文字が取得出来たとする こんにちは はじめまして これをHTMLとして出力するときに、 <p></p>とするとどうなるか。 <p>こんにちは はじめまして</p> HTMLの改行は意味がないので こんにち…

【Laravel】簡単にadmin用のページを作成する【720日目】

元ネタのLaravelニュース laravel-news.com 簡単admin画面作成 composer require laravel-frontend-presets/NowUi php artisan preset nowui これで、Bootstrap4で作られた、adminテンプレートが出来上がります。 php artisan migrate --seed こちらで、基本…

【Laravel6.1】LazyCollectionにeagerメソッドが追加されます【719日目】

アプデ laravel-news.com 6.0から追加された、LazyCollectionというクラスに、新しく eager()が追加されました。 どんなことが起こる? github.com @return static` なので、LazyCollectionが返されます。 そして、eagerが呼び出された時点での中身を使用し…

【Laravel】bladeの{{}}の記号を変えることができなくなりました【717日目】

今までの変更 \Blade::setContentTags('[%%', '%%]'); \Blade::setEscapedContentTags('[-%%', '%%-]'); こうすると、 {?? ??}みたいなタグを {%% %%}に置き換えたりできました。5.3まで。 用法としては、別なテンプレートエンジンや、JavaScriptで {{}}を置…

【Laravel】カスタムバリデーションで入力が空だと動かない問題【713日目】

入力が空だとバリデーションが動かない Validator::extend('required_if_xxx_and', function($attribute, $value, $parameters) { // なんらかの処理追加する // 通常のrequired_ifをする $param_required_if = implode(",", $parameters); $result_for_requ…

【PHP】PHPとLaravelのバージョンアップで苦しんだのメモ【699日目】

これはメモです ってことで、改めて後日まとめるかもしれないです。 PHP 7.0->7.1 countの引数 count関数の引数がnullを受け付けなくなりました。 nullが来た場合、配列を入れてくださいってエラーが出ます。 Laravel 5.2->5.3 Paginator.phpのpresenterが消…

【Laravel+Vue】MPAでLaravelとVueで値を共有するには?【693日目】

DBの値をVueで扱いたい <ul v-for=items> <li></li> </ul> こんな風にfor文とかでVueを使って値を回したい。 でも、Vueからデータベースの値を取ることはできない。 ということで、Laravelなどバックエンドから値をとってきて、Vueに渡してやる必要がある。 ではどうやるのがいいか。 今の…

【Laravel6】Laravel6で追加されるLazyCollectionに思いを馳せてみる【678日目】

現状一つ悩みがありました リポジトリパターンと呼ばれる、永続化したデータを取得・操作する際に、 Repositoryクラスに集約させるようなやり方があるのですが、 Eloquentのchunkメソッドを使って取得するときに、取得中に別な作業をさせようとすると、 Repo…

【Laravel】Eloquentでsaveを書くときに注意すべきこと(特に関数内で)【677日目】

Eloquent使って、saveがしたい! function saveName(\App\Models\User $user) { $user->name = "ringo"; return $user->save(); } このコード、怖い!!! なぜか? もし、$userにすでに別な値がセットされてたら? public updateUser() { $user = User::fin…

【Laravel】DBに保存時に、空文字""をnullに変換したいとき【675日目】

DBの保存に一手間追加したい フォームの入力などで取得したデータを、ちょっと変形させてからDBに保存したい。 でも、コードの途中を変更することは困難だったり(オレオレフレームワークとか)、 該当カラムは必ず変形させたいとかがあったとします。 私だと…

【Laravel】route.phpでURLに数値だけや文字だけを対象にしたい【670日目】

routeで引数に取る型を決めたい /profile/1とか、 /profile/3とかでURLを決めたい。 でも、 /profile/aaとかは404にしたい。 呼び出し先の関数で、 abort(404)とかでもいいけど、 どうせならそもそも数値だけをrouteに設定したい。 whereで固定する Route::g…

【Laravel】マイグレーションで、カラムにコメントを追加する【662日目】

DBのカラムにコメントをつけたい カラムにコメントをつけたい。 カラム名だけだと、伝わらないってときに、MySQLのカラムにコメントを付ける事ができます。 では、それをLaravelのマイグレーションでどのように実装するか coment() Schema::create('users', …

【Laravel】Laravelで簡単会員登録機能作成【657日目】

Laravelは認証機能簡単に作れます Laravelには標準機能として、認証に関わる機能が作れます。 ですが、最初のページには当然ないので、それを作成する必要があります。 php artisan make:auth 手元に新しくLaravelで作ったサイトがあれば、以下のコマンドを…

【イベント資料】Laravel.shibuya #3のLaravel Beginner IRTまとめ【648日目】

Laravel.shibuya? laravel-shibuya.connpass.com こちらのイベントですー! 私は、Laravel Beginner IRTの司会を担当していました。 イベントまとめ資料 当日話題になったのを簡単にスライドにまとめました。 Laravel shibuya 3 Laravel Beginner IRT from O…