Laravel

スポンサーリンク
Laravel

[Laravel] Docker環境でtinkerが「Writing to directory /.config/psysh is not allowed.」となってしまう原因

概要 Docker環境でphp artisan tinkerを実行するとWriting to directory /.config/psysh is not allowed.となってしまうことがある。 原因および解決方法 ホームディレクトリに書き込み権限がないことが原因である。 sudoを実行できる場合、sudo chmod -R 777 ホームディレクトリを実行すればよい。 sudoを実行できな...
Laravel

[Laravel] fillableが効かない原因(無視されるメソッドと無視されないメソッド)

概要 Laravelではモデルの$fillable配列でマスアサインメントを許可するカラムを指定することができる。しかし、登録・更新に使用するメソッドによって無視される場合と無視されない場合があるため、注意が必要である。 結論 同じ名前のupdateメソッドでも、モデルのupdateメソッドはfilableが有効となり、クエリビルダのupdateメソッドはfilableが無視されてしまう。 よって...
Laravel

[Laravel] メールを簡単に送信する方法

概要 Laravelでのメール送信処理は、Mailファサードのsendメソッドを使って簡単に実装することができる。 サンプル コントローラー // 〜省略〜 use Illuminate\Support\Facades\Mail; // 〜省略〜 Mail::send(, , function ($message) { $message->to('hoge@example.com')->subje...
スポンサーリンク
Laravel

[Laravel] 戻るボタンの実装方法

概要 Laravelで戻るボタンを実装する場合、url()->previous()を使うと簡単に実装することができる。 url()ヘルパ関数はIlluminate\Routing\UrlGeneratorインスタンスを返す。 UrlGeneratorのpreviousメソッドは直前のURLを返す サンプル <a href="{{ url()->previous() }}">戻る</a> javas...
Laravel

[Laravel] 配列のバリデーションルールの書き方

概要 Laravelで配列のバリデーションルールを定義する場合、配列自体と配列の要素にそれぞれルールを定義する必要がある。また、多次元配列の場合、各次元のルールを定義する必要がある。 サンプル 通常の配列(一次元配列)の場合 <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class St...
Laravel

[Laravel] APIを作成する方法

概要 LaravelでAPIを作成する場合、ルーティング、コントローラ(必要な場合はフォームリクエストも)を定義・作成する必要がある。 手順 1. コントローラの作成 sail artisan make:controller Api/ItemsController 削除処理の場合はresponse()->noContent()を返す(204が返される) <?php namespace App\Ht...
Laravel

[Laravel] 定数定義と定数の利用方法

概要 Laravelで定数を定義する場合、configやModelなどに定義することができる。しかし、個人的にはConstsディレクトリを作成し、その中に定数ファイルを格納するのが最もわかりやすいと思う。 サンプル 定義 <?php namespace App\Consts; class ColorConst { const COLOR_RED = 1; const COLOR_BLUE = 2;...
Laravel

[Laravel] ページネーションの簡単なサンプル

コントローラ public function index(Request $request): View { $items = Item::orderBy('id', 'desc')->paginate(50); return view('items.index', ); } ビュー @if ($items->hasPages()) 全{{ $items->total() }}件中{{ $item...
PHP

[PHP][Laravel] フォームから送信された配列をintにキャストする方法

概要 フォームから送信された値は数値であっても文字列として扱われる。array_map関数の第1引数(コールバック)にintval関数、第2引数にフォームから送信された配列、を指定するとint配列を生成することができる。 $numbers = array_map('intval', $request->input('numbers')); Laravel コントローラで以下のようにする。 publ...
Laravel

[Laravel] データを更新してもリレーション先が変更されない?

概要 Laravelのモデルでリレーションを定義した場合、一度リレーション先のモデルを参照するとその参照が保持される。このことはデータを参照するだけであれば問題ないが、データを更新した場合、古いリレーション先を参照することになってしまう。 ※マニュアルに書かれていることではないため、もし詳しい方がいらっしゃいましたらコメントください サンプル 例えば以下のようにusersテーブルとitemsテーブ...
スポンサーリンク