エンジニアのひよこ_level10

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

Laravel

【リクエスト】LaravelのRequestクラスで使う基礎メソッドまとめ【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がなにであろうと、ドキュメントルートの…

【Laravel】dd関数は実際何をしてる?+名前の意味とは【260日目】

ddとは よくLaravelで、プログラムが正しく動いているか試すために、 dd($some_value); というコードを書いて、$some_valueの値をチェックしたりします。 じゃあ、この関数は何をしているのでしょう? そもそもこの名前は何の略? コード vendor/laravel/fra…

【Laravel】コレクションの値を$model->value = xxで変形させるミューテター【255日目】

参考 Eloquent:ミューテター 5.1 Laravel 書き方 class User extends Model { /** * ユーザーのファーストネームを取得 * * @param string $value * @return string */ public function setFirstNameAttribute($value) { $this->attributes['first_name'] =…

【Laravel】Bladeに書く{{}}って何してるの?【244日目】

{{}}ってなんだろう? よく、Bladeを書くときに、 {{ $user->name }} みたいな書き方をすると思います。 データを取得して出力するのはわかりますが、具体的に何をしてるのでしょう? echoとe関数を呼ぶ 上のコードですが、Laravelを通して変換すると、次の…

【Laravel】ファサードはなんなのかをざっくりメモ書き【236日目】

注意 私のざっくり理解のメモ書きです。 ファサード Laravelのコード全体に、便利なインスタンス用意してくれてるやつ。 起動時にインスタンス用意してくれるやつ。 View::XXX(); こんな感じに、インスタンス化もパス指定もしてないのに使えた関数あったよね…

Laravelでテーブル名でModelを作る理由を考える【231日目】

あくまで考察 あくまで考察。予想です。 私はこれでいいと思った $user = new Model('Users'); こんな感じにテーブル名指定すればいいんじゃね?って。 User.phpを作るにしても、その時点でユーザーはDB意識してるじゃんって。 DB意識させない 最初にUser.ph…

【Laravel】bladeでforeachの回数カウント3種類($loop使えない用)【228日目】

こんなとき使う @foreach($titles as $title) @if($index == 4) @endif @endforeach こんなふうに、4番目のデータのときにだけなにかをしたい場合。 書き方いくつかあります。 $loop変数を使う(Laravel5.3以上) @foreach ($titles as $title) @if ($loop->in…

【Laravel】POSTで送ったRequestを配列で処理したい【213日目】

こんな時に使う フォームでCheckBoxなどのデータをPOSTで受け取る。 Laravel側でRequestを受け取る。 その受け取ったデータをこんなふうに取得したい。 [ 'username' => 'uiro', 'item_number => '5' ] こうかく function doPost(Request $request) { $reque…

【Laravel】url()->previous()で前のページが取得出来ない時の対応【208日目】

直前に見ていたページの取得方法はこちら willow710kut.hatenablog.com こんな時につかう 対象のページを初めて見た時 新しいページ、新しいタブで開いた時 この時は、直前に見ていたページが取得出来ない。 その時の対応をどうするか。 別なページをセット…

【Laravel】実行したor実行する前のSQL文を確認する【205日目】

こんな時に使う Laravelで書いたSQLの文を確認したい。 $articles = Article::all(); これとか実際にはどんなSQL文で取得したか知りたい 実行後に確認 // これから書くSQL文をLogで取得出来るようにする \DB::enableQueryLog(); // SQL文実行 $articles = Ar…

【Laravel】モデルが更新した時に、関数を動かす【193日目】

こんなとき使える ユーザー情報を更新する時に、イベントを発行する。 User::updated(function($user) { if ($user->isDirty('email')) { Mail::to($user)->send(new UserMailChanged($user)); } }); これで、ユーザー情報を変更して(updatedイベント)、 …

【Laravel】直前にアクセスしたページのURLを取得する【188日目】

引数を入れた時どうなるかも書きました 取得失敗した時の動作が書かれているよ。 willow710kut.hatenablog.com 直前にアクセスしたURL、ページに来るためのリクエスト元のURL こうかく url()->previous(); 結果 "http://blog.hatena.ne.jp/willow710kut" み…

【Laravel】パスワード入力時に、確認の入力をバリデーションする。【185日目】

こんな時に使う よく新規会員登録とかで見かける、 パスワード入力 パスワードの確認 とかで、同じパスワード入れないと通らないあれ。 こう書く id='xxx'のバリデーションに、 confirmedを設定 id='xxx__confirmation'を、確認用のformとして用意する id='x…

【Laravel】データベースから取り出したデータを、型変換してから取り出したい【183日目】

値を取り出す時に、事前キャストしたい ユーザーが管理者のときに○○したいという時に、以下のようにコードを書きたい $user = new User('uiro'); if($user->is_admin === true) { .... } でも、データベースから取得した$userは0,1で is_adminが入ってる・・…

【Laravel】コレクション内の多重配列を合体させて、一次配列に【182日目】

こんな時に使える コレクション内に、[1,2,3]、[4,5,6]とかの配列を、一個にくっつけたい。 普段なら、foreachで取り出して、一個一個結合させる必要がある。 使うもの collapse() コード $collection = collect([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); $colla…

【Laravel】Formファサードのpasswordのoptionがきかないのは【181日目】

Formファサード Form::text('email', null, ['id' => 'email', 'class' => 'mail', 'tabindex' => 1]) こんなやつ これだと上手く動かない Form::password('password', null, ['id' => 'password', 'class' => 'pass', 'tabindex' => 1]) この時、formタグに…

【Laravel】route.phpの書き順で動かなくなるパターン。例題あり。【180日目】

書き方間違えてないはず、なぜか反応しない // ① Route::get('/', 'TopController@index')->name('top'); // ② Route::get('/{name}', 'ProfileController@detail)->name('profile_detail'); // ③ Route::get('/list', 'ProfileController@list')->name('pro…

Laravel+MySQLでtinyintの扱い【157日目】

desc table_nameでなにこれとなる なぜ1だったり、4だったり指定されているのかと思って調べてみた。備忘録。 tinyintとは 1byteの数値。 符号なしなら、0から255、符号ありなら、-128から127まで。 tinyint(1)は mysqlの時だけ、0or1を指します。つまり、bo…

【Laravel】make:migrationで、Schema::createを自動挿入【145日目】

現状 php artisan make:migrateをすると出来るファイルはup()とdown()に何も書いていない php artisan make:migrate create_new_tables

laravelの環境構築で参考にしたサイト一覧【125日目】

基本形 qiita.com Nginx + php-fpmの環境を作ろうとしたらPHPファイルがダウンロードされる utano.jp mcryptをphp7.2でもインストールする方法 blog.apar.jp ぼやき とりあえずわからないところは極力削って環境構築。 わからないままコピペよくない。 一応…

Laravel5.2以降で二重配列にバリデーションを入れる方法【117日目】

配列にバリデーションをかけたい arrayX = [['key' => 10], ['key' => 'aaa']] こんな感じのやつ。 arrayのkeyに対して、数値であるとバリデーションをかけたいやつですね。 公式ドキュメント バリデーション 5.3 Laravel 配列形式のフィールドをバリデーシ…

LaravelのsortByとorderByの使い所【84日目】

sortByとorderByの違いって? sortBy()の使い所は、コレクションをソートする時に使います。 orderBy()はwhere()とかと同じで、データベースから取得する時に使います。 使い方の違い $query->get()->sortBy('id'); $query->orderBy('id')->get(); この2つの…

Laravelで『ページ3』や『次へ』や『前へ』というページネーションの作り方【77日目】

参考 ペジネーション 5.1 Laravel 手順 ControllerでpaginateをつかってDBからデータ取得。 Viewでrenderで呼び出す(renderは{!! !!}のカッコで囲むこと) コード public function index() { $users = DB::table('users')->paginate(15); return view('user.i…

【Laravel】DBのデータを変形させて$model->valueで取るアクセサー【76日目】

反対のミューテターに関してはこちらの記事へ willow710kut.hatenablog.com 参考 Eloquent:ミューテター 5.1 Laravel 書き方 class User extends Model { /** * ユーザーのファーストネームを取得 * * @param string $value * @return string */ public fun…

Laravelで多対多のリレーションを組む【71日目】

多対多とは ある人は、いくつかのグループに所属しています。 あるグループは、いくつかの人で構成されてます。 これが多対多です。お互いが複数の対象を持ってますね。 これをデータベースで表現すると、中間テーブルと言うものが必要です。 データベースだ…