複数代入とは? データベース作成において登場する「複数代入」という概念、最初は意味わからないですよね。 大丈夫です、それ、サルでもわかります。 猿でもわかるように複数代入を解説します。 結論から言うと複数代入とは複数のカラムにデータを入れることです 例えば、passwordだけ更新出来る画面が有ったとして、ブラウザに表示されるのはpasswordフィールドだけですが、ブラウザをちょっといじれば入力項目を追加できます。これが複数代入です。 大抵、他の項目も更新出来てしまう問題を回避するために、複数の項目に代入出来ない様にしています。 はい、そのまんまです。 また、よく出てくるEloquentに関する記事では次のような説明を行っていました。 Eloquentユーザーからの入力を元にデータを保存する場合、悪意のあるユーザーがこちらの意図しないデータの保存・更新を行うように複数の項目を代入してくる
定義方法 scope名は必ず最初にscopeを名前の初めに付ける必要がある. ・scopeUserName ・scopeBookSerialNo 上記のようにスコープ名をつける。 public function scope+名前($query, 引数) { # 処理内容 return 絞り込んだビルダ(検索条件) }
IoC container 悩み事 取得したい何かがIoCコンテナに格納されている インターフェースがバインドされているオブジェクトや、何かのクラス、 または配列などの何かのデータなどはIoCコンテナを通じて取得すると、 テストのしやすさや、拡張性が高くなるということを覚えておきましょう 解決方法 App::make()を利用すると簡単に生成したり取得ができます これはApp::bind()と共に使用するとよりLaravelらしくなります // どこかにMyCoolClassを、'myclass'という名前で生成する様に記述します \App::bind('myclass', function($app) { return new MyCoolClass(); }); // 生成したい場所でmyclassが生成されます $myclass = \App::make('myclass'); Ap
バインドと解決の大まかな仕組み(というかこの記事の結論) バインド(というかbindメソッド)の大まかな仕組みは、 bindメソッドの第一引数をキーとして、第二引数をクラスのインスタンスやクロージャとなるキーの値としてLravelであらかじめ用意された配列にセットするというものです。 そして解決(というかmakeメソッド)の大まかな仕組みは、 bindメソッドでセットした配列のキーと同じ値がmakeメソッドの第一引数にセットされたとき、そのキーに対応するインスタンスやクロージャを返すというものです。 コンテナのバインドと解決の流れを図にするとこんな感じです。 今度は実際のLaravelのコードを見て、バインドの仕組みについてみていきたいと思います。 バインドの仕組みについて 実際のbindメソッドのコードはこのようになっています。ちなみにbindメソッドは、Laravelのサービスコンテナ
【Laravel】 Eloquent の has() や whereHas() が遅い?なら速くしてやるぜPHPMySQLSQLLaravelEloquent はじめに 2021/10/21 追記: Postgres は MySQL と異なり,相関サブクエリの JOIN 最適化もカバーしています。それゆえ,主にこの記事の内容は MySQL を想定したものとなっております。 (情報提供: @KentarouTakeda) 2022/12/22 追記: MySQL もバージョン 8.0.16 以降では Postgres に似た最適化が入るようになりました。そのため,殆どの場合ではもはや has() whereHas() を素直に使うだけで十分になっています: 【ガチ検証】Eloquent whereHas() はもう遅くないよ! Laravel は「リレーション先が存在するか」という制約条件を
CSSファイルなどの静的ファイルはブラウザにキャッシュされ、内容を変更しても更新されないことがあります。それを避けるためにファイル名に次の様な引数を付けるのが定番になっています: css/app.css?201905201034 Laravel Mixのコンパイルではこれを自動化出来ます。 詳しくはドキュメントを読んでください。 バージョン付け/キャッシュ対策 | アセットのコンパイル(Laravel Mix) 5.5 Laravel 試してみる webpack.mix.js に version() を追加します。 mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') ; ↓ mix.js('resources/js/app.js', 'public/js') .s
##概要 Laravelでサービスを作っていると、このコントローラー内ではアクション実行前に この値をチェックして、だめなら別のページにリダイレクトさせたいとかって時があると思います。 そんな時に便利なのがコントローラーフィルターです。 しかしなぜかLaravel公式サイトでは一瞬しか触れられておらず、詳細が不明。もったいない。 ただしLaravel 5.1からこのコントローラーフィルターは非推奨となり、 HTTPミドルウェアを使うように推奨しています。 (@localdisk さんよりご指摘。ありがとうございます!) ということで今回は、4系を使っている人向けにコントローラーフィルターについて書きます。 HTTPミドルウェアについては次回記載したいと思います! ##寄り道 概要で述べたようなことを実現しようと考えた時に コントローラーフィルターを知る前はこんな感じのプログラムを書いてまし
概要 Laravelからconnpassのイベント情報を取得する方法の備忘録です。 リクエスト処理はGuzzleを使用しました。 コード Guzzleのライブラリをインストール composer require guzzlehttp/guzzle <?php namespace App\Services; class ScrapingService { // evetnt_idはconnpassのURLで表示されるIDのこと // https://web-engineer-meetup.connpass.com/event/128855/ → 128855 public function getConnpassData($event_id) { $client = new \GuzzleHttp\Client(); $res = $client->request('GET', 'https
イントロダクションIntroduction 新しいLaravelプロジェクトを開始する時点で、エラーと例外の処理は既に設定済みです。App\Exceptions\Handlerクラスはアプリケーションで発生する全例外をログし、ユーザーへ表示するためのクラスです。このドキュメントでは、このクラスの詳細を確認していきます。When you start a new Laravel project, error and exception handling is already configured for you. The App\Exceptions\Handler class is where all exceptions triggered by your application are logged and then rendered back to the user. We'll di
はじめに バックエンドの実装に関して、時間がかかる処理を行う場合、非同期に処理したいケースがあると思います。今回はLaravelで非同期に処理するための手軽な方法を紹介します。 動作環境 本記事ではPHP 7.2、Laravel 5.5の環境を想定しています。 準備 非同期に処理するに当たりジョブのキューを管理する方法としては、データベースを利用する方法やRedisを利用する方法などがあります。Laravelでは標準でデータベース、Redis、Amazon SQS、Beanstalkdを利用することができますが、今回は最も手頃なデータベースを使用する実装を紹介します。 デーブルの作成 以下のコマンドを実行してキューを管理するためのテーブルを作成します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く