ハッピーメモメモ

私的備忘録

Laravel

【Laravel】【PHP】$thisってなに?

$thisとは ・PHPの疑似変数 ・クラスのインスタンス自身のことを指すもの ・自分自身のオブジェクトを指し、インスタンス化した際、クラス内のメンバ変数やメソッドにアクセスする際に使用します。 ・静的なプロパティにはアクセスできない self::とは ・自…

【Laravel】【Vue】リダイレクトの疑問

現在Laravel+Vueでシステムを作っているが、 リダイレクトで悩んだのでメモ。 Q.Laravelのコントローラーにて以下のコードを記述したが、リダイレクトがうまくいかないのはなぜだろう? return redirect('/status'); A. ・今回はWebページのルーティングの…

【Laravel】Throttle

Throttle機能 ・Laravelにデフォルトで用意されている機能 ・最初にアクセスした時刻を元に、決められた時間範囲内のアクセス可能数を制限できる ・アクセス可能数を超えてアクセスしようとすると429エラーが返される ・その後時間範囲が過ぎるとアクセス可…

【Vue】【Laravel】作品 進捗メモ

優先順位 ◎ログインしていない人がページを見れないようにする qiita.com ○テストをつくってログイン、ログアウトができるか試す ○REGISTERコントローラーを強くする teratail.com 認証されていないユーザー RentalController public function index() { if …

【Laravel】 CSRF TOKEN

cookie ・cookieに設定される値は暗号化される。・cookieに保存されるセッションid(laravel_session)とトークン(XSRF-TOKEN)はcookie名が違う。 トークン(XSRF-TOKEN) ・tokenはセッション作成時に発行され、regenerateしない限り不動。 ・cookieの有効期限…

【Laravel】Laravel Sanctum-SPA認証③ログアウト

ログアウト use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; public function logout(Request $request) { // ログインのセッションを無効とする Auth::logout(); // セッションをクリア&セッションIDを再発行 $request->session()->in…

【Laravel】【Vue】git clone

久しぶりにgit cloneしようとして困ったのでメモ ①git cloneする ②必要なライブラリのインストール VUE npm install && npm run dev Laravel composer install ③.env 作成 $ cp .env.example .env ④アプリケーションキーの初期化 $ php artisan key:generate…

【Laravel】CORS対策

CORSとは ・クロスオリジン間通信でリソース(データ)の共有をすること オリジン…スキーム + ホスト + ポート番号で構成される組み合わせ クロスオリジン ・オリジンが一致しない場合 例)Facebookのリンクが貼ってあるサイト(アクセス元) →Facebookのサ…

【Laravel】JSONレスポンス

レスポンスって、いろいろ返せる✨ 今回はJSONレスポンスを使う機会があったので、それについて書く response()->json() return response()->json([ 'name' => 'taro', 'id' => 1 ]); storehouse-techhack.com 第一引数: JSON 化可能なオブジェクト 第二引数…

【Laravel】web.phpとapi.phpの違い

web.php ・通常、ブラウザからHTTPリクエストをうけて、画面に表示するようなルーティングを設定する場合に使用する・CSRF保護などの機能が有効になっているため外部からのPOSTができない api.php ・外部からのHTTPリクエストをうけて、値を返却したりするよ…

【Laravel】Laravel Sanctum-SPA認証➁ログイン

CSRF保護 ■Vue 〇CSRF保護を初期化 ・ SPAを認証するには、SPAの「ログイン」ページで最初に/sanctum/csrf-cookieエンドポイントにリクエストを送信して、アプリケーションのCSRF保護を初期化する必要がある Login.vue await axios.get("/sanctum/csrf-cooki…

【Laravel】Laravel Sanctum-SPA認証➀

認証いろいろ ひとくちに「認証」といっても、何種類かありそう。 今回はLaravelSanctumのお世話になるので、以下2種類の認証をみてみる。 〇SPA認証 ・Cookieを利用する 〇APIトークン ・トークンを利用する ・Cookieは一切使用しない (APIアプリケーショ…

【Vue】【Laravel】作品(storeアクション)

【Vue】【Laravel】書籍情報/登録 ①/create にアクセス ②router.jsをみにいく ③Vue コンポーネント「Create」へ (Laravelだけでつくってたときは、ここがcreate.blade.phpだった) ➃登録したい情報を入力する →api/book_information にPOSTで送信するとsto…

【Vue】【Laravel】作品(updateアクション)

booksテーブルのavailabilityの更新 ①Borrowコンポーネントのborrow_event発火 ②rentalsテーブルにデータを追加 ③PUT/PATCH →部分的に変更をしたいので、PATCHを使う! ※availabilityの値は「false」では通らない!(DBは0か1って書いてあるからかも) const…

【Laravel】namespace、useについて

訳も分からずに書いていたけれど、namespaceとかuseってなに…!? namespace ・PHPで名前空間(エイリアス)を設定するために使用されるもの ・どこのフォルダに置いてまっせ~というパスをかく use ・PHPファイルで使用するクラスや関数などを予め宣言して…

【Vue】【Laravel】作品(showアクション)

本を探す ①/find にアクセス ②router.jsをみにいく ③Vue コンポーネント「Find」へ ④検索ボタンをクリックすると、getDataメソッドがうごく ⑤axiosで以下へアクセス http://127.0.0.1:8000/api/books/1 (id=1のデータをだす) ⑥コンソールログにbooksテー…

【Laravel】Eloquent whereによる検索

->get() ・返り値はCollectionクラス ・中身はModelのオブジェクト。ゆえにforeach()で回せば各々の値を取得できる。 ->get()->all() ・厳密にarrayがほしい場合、取得したCollectionに->all()メソッドを呼び出すと、モデルインスタンスの配列が返される ->g…

【Vue】【Laravel】作品(indexアクション)

役割分担 book_information テーブル ・書籍情報をみたいとき ・リレーション前の一覧 books テーブル ・書籍とそれに紐づく書籍情報をみたいとき ・リレーション後の一覧(リレーション前の一覧は要らなそう) 本の一覧(belongs to) ①/list にアクセス ②r…

【Laravel】DB設定まわりについて

〇「.env」ファイルについて ・パスワードが入っているファイルなので、Githubにはあげるべきではない。 ・家で作る場合 ①.env.exampleをコピーして.envをつくる ②パスワードなど設定する ③php artisan key:generate で、「APP_KEY」を自分のパソコンのもの…

【Vue】【Laravel】作品を考える

つくるまえに 必要な作業 つくりたいもの 必要な機能を書き出して、優先順位をつける データの流れ ルーティング デザイン 立ち止まり記録 自宅で作業できるようになった ルーティング 進捗報告 つくるまえに 〇使うもの ・Laravel のみ ・Vue.js + Laravel …

【Laravel】Eloquent 規約とプロパティ

クラスとデータベーステーブルとの関連付け ・Eloquentにおまかせ(暗黙的に関連付けられる) テーブル名:複数形 例)authors クラス名:(テーブル名の)単数形 例)Author ・テーブル名にアンダースコアが含まれるとき(暗黙的に関連付けられる) テーブ…

【Laravel】ミドルウェア

Laravelにおけるミドルウェアとは コントローラクラスの処理前後に位置し、主にHTTPリクエストのフィルタリングやHTTPレスポンスの変更を担う。 →レスポンスの変更って、例えばどんなものがあるんだろう? Laravelで提供されているミドルウェアは3種類ある…

【LARAVEL】バリデーション

バリデーションの使用例 入力された値をコントローラ内でチェックする処理。 failsメソッドの実行タイミングでバリデーションが行われる。 class UserController extends Controller { public function register(Request $request) { // すべての入力値を取…

【Laravel】HTTPリクエストを取得して利用する方法

Requestファサード リクエストの取得 // 'name'キーでリクエストから値を取得する $name = Request::get('name'); // 'name'キーがない場合、「guest」を返す $name = Request::get('name','guest'); 取得したリクエスト値を連想配列に保存 // すべての入力…

【Laravel】api.php

〇api.phpとは? APIでリクエストされたURLに対してルーティングを定義することができるファイル www.tairaengineer-note.com 〇「Route::apiResource()」 「一覧取得」「個別取得」「登録」「更新」「削除」のルーティングを全部つくってくれる! (メソッ…

【Laravel】HTTPリクエスト

〇公式 readouble.com

【Laravel】ファサード

〇ファサードとは? ・クラスメソッド形式でフレームワークの機能を簡単に利用できるもの。 ・裏側ではサービスコンテナの機能が使われている。

【Laravel】サービスコンテナ

〇サービスコンテナ ・クラス(コントローラやモデルなど)のインスタンスの管理を行う。 ・サービスコンテナの利用 ①インスタンス生成方法の登録「バインド」 ➁解決したインスタンスの取得「解決」 ------------------------------------------------------…

【Laravel】DBをつくる(1.5)

〇マイグレーションで生成したテーブルを削除する (a)テーブルの情報の保管場所…MySQL (b)テーブルのデータの書き換え場所…VScode ①まずは(a)を消す! すべてのテーブルをドロップ(削除)してから再びマイグレーション コマンド: php artisan migrate:fres…

【Laravel】DBをつくる(1)

<準備> 1.プロジェクトを作成 composer create-project laravel/laravel プロジェクト名 --prefer-dist バージョン指定は、↑の最後にこれを足す(6を指定する場合の例) "6.*" 2.phpMyAdminでDBを作成 3..envファイル変更 DB_DATABASE=phpMyAdminで…