エンジニアのひよこ_level10

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

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日目】

個人サイトを作ってみよう http://nyamucoro.com/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がなにであろうと、ドキュメントルートの…