エンジニアのひよこ_level10

【毎日更新!】新卒2年目エンジニアブログです! プログラムだけじゃなく、マネジメントとかも書いていきたい!

Laravel

【Laravel】コンソールコマンドを実装時に、引数のヘルプを作成する【427日目】

Laravelのコマンドを実装するとき /** * コンソールコマンドの名前と引数、オプション * * @var string */ protected $signature = 'update:user {--user_id}'; /** * コンソールコマンドの説明 * * @var string */ protected $description = ’ユーザー情報…

【Laravel】データベースから日付データ取ったら、文字列でデータが来た時の対応【426日目】

モデルの時間を取ろうとしたら、文字列・・・ User::where('id', 5)->start_at->gte(Carbon::now()); usersテーブルの日付データを使って、時間の比較をしようとしたら、 start_atが文字って言われた(T_T) どうせなら、日付データはCarbonとかで取ってきてほ…

【Laravel】初心者も出来た!Laravelの中身を読んでコントリビュートしよう

Laravelアドベントカレンダー12日目の記事です この記事は、Laravelアドベントカレンダー2018の12日目の記事です。 qiita.com 読者対象 PHP、Laravel初心者。 Laravelにプルリク出してみたい人。 初心者PHPerです! はい!私PHP歴1.5年の初心者です! そんな…

【個人サイト制作記2】Bootstrapを使って簡単TOPページ【420日目】

この記事はなに? 個人サイトを作るときになにをしたかを書いてるよ。 似た手順を踏めば、いつか私のサイトと似たレベルなら作れるかも? 前回 GCPでいろいろ頑張った www.nyamucoro.com 今回のゴール 前回でLaravelのTOPページが出たので、 ここまで。 何を…

【個人サイト制作記1】GCPを使ったLaravel環境構築まで【416日目】

個人サイトを作ってみよう nyamucoro.com ってことで、作ってます! その過程でなにをしたかを少しずつ書いておきます! こんな感じに作ったのかーとか、これじゃまずくね?みたいなご指摘とか。 ほっこり楽しんでもらえると嬉しいです。 私としては、これが…

【Laravel】Modelクラスでクエリビルダが動く理由【409日目】

モデルでクエリビルダ? モデルのクラスって、テーブルのレコードをオブジェクトにしたようなイメージでした。 でも、以下のようなコードを見ることがあると思います。 User::select('id')->first(); あれ?selectってクエリビルダだよな・・・ このUserって…

【Mockery】メソッドチェーンで繋がった関数をモックする【404日目】

こんなとき プログラムで、テストを書こうと思った。 \Validator::make($data, [ 'email' => 'unique:users,email', ])->fails(); これ、Validatorのmakeをモックしたとしても、その後のfailsもモックできていないと、うまくテストできない。 makeとfailsを…

【Mockery】テスト対象のメソッド内で、app関数で値が呼び出されているとき【403日目】

こんなとき class Hoge { public function fuga() { return app('some_class')->someMethod(); } } class SomeClassProvider extends ServiceProvider { public function register() { $this->app->singleton('some_class', function () { return new SomeCl…

【Mockery】テスト対象のメソッド内で、別クラスがnewされてる時のモック【402日目】

こんなとき使う テスト対象の関数で、以下のように新しいインスタンスが作成されてる。 class Hoge { public function fuga() { return new SomeClass()->someMethod(); } } 作成されたSomeClassのsomeMethodを、どうにかしてモックしたい。 overload テスト…

【Laravel】ファサードのモックでCannot redeclare Mockeryが出る対応【399日目】

ファサードをモックしようとした テストを書こうと思って、ファサードでモックしようとした。で、こう書いたら・・・ $mockClass = Mockery::mock(‘Validator’)->shouldReceive(‘make’); エラーがこれ Cannot redeclare Mockery_0_Illuminate_Support_Facade…

Laravelでリポジトリを書くメモ【397日目】

注意 メモです。 こんなふうにコード書いていきたい(願望) 慣れたらサイト作って、それをgithubに上げたい(願望) リポジトリ class XxxRepository implements XxxRepositoryInterface { } リポジトリを呼び出すサービス class XxxService { private $xxx…

DBでcreateするときに、ControllerとServiceとRepositoryに書く内容【395日目】

注意 リポジトリパターンを学び始めの初心者なので、これが当たり前!って感じではないです! 合ってる!間違っている!等ありましたら教えていただけると嬉しいです! 一旦理想を考える 以下、ServiceとRepositoryで呼び出しの理想形を書いてみる。 Service…

【Laravel】Controller等の動作前後に動くプログラム。Middleware【389日目】

こんなときに使う ページ見に来た。 リクエストの情報を使って、コントローラーを動かしたいけど、 コントローラーを動かす前にちょっとデータを操作したい。 Viewの内容を毎回ちょっといじるとか。 毎回コントローラーに同じ処理をするとか面倒だしね。 ど…

【Laravel】ミドルウェアの指定を一個にまとめる【388日目】

こんなときにつかう protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBind…

【debian】Laravel環境構築。サーバーコマンドメモ【386日目】

注意 初心者が本番サーバーを用意するために書いたコマンドです。 これで動くものを作れるとは思いますが、セキュリティ周りとかをよく知っていない人のコマンドなので、 これを使うときは、お近くの知識がしっかりしてる方に確認とかしてみてくださいね! G…

mysql8以降使って、Laravelのmigrateができない問題【337日目】

環境作ったらmigrateができなかった PHP+MySQLで環境作成したら、動かない。 マイグレーションしようとすると、PDOのエラーが出る。 デフォルトのパスワード認証のやり方が変わって、 caching_sha2_passwordって設定だから、接続できないよーって。 なので、…

【Laravel】Eloquentのcreateとfillの違いとは【336日目】

■注意 コードは5.2のコードです。ですが、そんなにバージョン上がっても変わってないはずです。 ■結論 基本的にcreateで大丈夫 ■違い 1.createはどうせfill通るので、fillableやguardedの部分は両方使う 2.createは、静的メソッドで、以下までしてくれる 1. …

【コントリビュート】Laravelへのプルリク、その後に起きたこと【330日目】

これまでの流れ ■バグ発見 【Laravel5.6】cacheヘルパ関数で、テストのshouldReceiveが動かない対応【327日目】 - エンジニアのひよこ_level10 ■こんなふうにプルリク作って githubの他の人のコードにプルリクを出すときの流れ【328日目】 - エンジニアのひ…

Laravel公式のcacheヘルパ関数に対して、プルリク出してみた【329日目】

プルリク出したので 経緯とかまとめてみる。こんなことあったよー褒めてーくらいの記事です。 ただ、教訓となったのは、 『『『自動テストってまじで大切!!!』』』 問題となった内容 willow710kut.hatenablog.com cacheのhelper関数おかしくないかな?っ…

【Laravel5.6】cacheヘルパ関数で、テストのshouldReceiveが動かない対応【327日目】

結論 cache('key')を使った場合、withの中身を with('key', null)にする。 サンプルコード public function testBasicExample() { Cache::shouldReceive('get') ->with('key', null) ->andReturn('value'); $this->visit('/cache') ->see('value'); } 公式ド…

【Laravel】bladeで@ifを使わずisset【323日目】

こんな時 コントローラー側で変数を渡す時、この変数がない可能性がある・・・ あるいは、バリデーションで $errors変数を受け取る可能性がある時。 こうする @isset($errors) bladeに @if(isset($errors))って書かなくても、bladeでこの書き方があります。

【Laravel】download関数のpathToFileの落とし穴【321日目】

ユーザーにファイルをダウンロードさせたい http://domain_name.com/storage/images/upfile.jpegで画像が出るものをダウンロードさせたい。 return response()->download('/storage/images/upfile.jpeg'); あれ?なぜか動かない。 最初のスラッシュは不要 re…

【Laravel】Cookieを付与する。view関数でbladeも使えます【320日目】

こんな時 LaravelでCookieを付与したい。 (この保存方法だけでは、暗号化された状態で保存されます。なので、ユーザーは内容がわからないです。) 書き方 return response() ->view('blade_file_name') ->cookie('cookie_name', 'value', 30); 何をしてるの b…

【リクエスト】LaravelのRequestクラスで使う基礎メソッドメモ2【312日目】

前回の記事 willow710kut.hatenablog.com 使ったページ やったこと Postで、messageにteatをつけて送った all() 結果 _token=>p899Z1NqmQpIQW1KTeG06EPXCMVz19oGdn4myVv6 message=>teat _tokenは、LaravelでPostを送るときに必要な {{ csrf_field() }}で生成…

【リクエスト】LaravelのRequestクラスで使う基礎メソッドメモ1【311日目】

こんなときに使うRequest フォームがあって、入力して、ボタンを押してpostリクエストを送る。 このリクエストの中身を使ってどうこうするときの関数。 サンプルページを作って、流れも合わせて説明。 リクエスト元ページ http://localhost:8000/request と…

【Laravel】各ページ同じヘッダーを使い回すbladeの構成【309日目】

こんな時 ページのヘッダーはどのページでも同じものを使うことよくありますよね。 こんな時、毎回コピペするのは面倒。 そんな時はこんな構成にしましょう。 使い回すテンプレート web/study-laravel/resources/views/_layouts/default.blade.php <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </meta></meta></head></html>

【nginx+phpfpm】Laravelでpublic配下のファイルが取得出来ない【306日目】

こんなことがありました。 docker-composeで管理、nginx+php-fpmで環境構築しました! Laravelのチュートリアルページ表示されました! ・・・favicon.icoが反映されない? public/app.cssや、public/app.jsが読み込めない・・・ 起こってること phpは、ngin…

【Laravel】Laravelのプロジェクトをcloneしたけど動かない時【300日目】

こんなことありませんか 新しくLaravelのプロジェクトをgit cloneしてきたよ! えっと、localhost:8000に行けばいいんですね! ・・・あれ?動かないんですが。 エラー例 whoops looks like something went wrong. Warning: require(xxxx/vendor/autoload.ph…

【Laravel】バリデーションでエラーが出た時に、ページにエラーを出したい【293日目】

こんな時 Laravelのバリデーションを作る。 その時のエラーに応じて処理をしたい Request側 省略。 Controller側 public function index(XxxRequest $request) { xxxxxx } 該当のバリデーションをかけたリクエストを用意する。 View側 @if (count($errors) >…

【Laravel】URLが『/hoge』のように、.phpが要らない理由【291日目】

普通のページなら phpの普通のページだと、URLは https://domain.jp/hoge/huga.php のように、phpをつける必要がありました。 では、なぜLaravelはそれが必要ないのでしょう。 必ずindex.phpを開いてるから これはURLがなにであろうと、ドキュメントルートの…