※ Route::controller のルーティングはLaravel 5.2 で非推奨、Laravel5.3 で削除されました これはLaravel Advent Calendar 17日目の記事です。 昨日はHiroKwsさんの最強のデバッグツールlaravel-debuggerについてでした。 今回はLaravelのルーティングの書き方をまとめてみようと思います。 まず基本ですがLaravelではルーティングの設定はapp/routes.phpにまとめて記載するようになっていますので今回ご紹介するルーティングのコードは全てapp/routes.phpに記載するものと思ってください。 Laravelのルーティングは大きく分けて3つの書き方がありますので順番に見ていきましょう。 1, ルーティングと同時に表示内容もクロージャで記載してしまう方法 これは一番シンプルなルーティングの書き方か
はじめに (注) 本記事は単なる目次です。 半年前くらいから Laravel を使い始めて、個人的にベストプラクティスをまとめたいと思っていたので、目次の内容で順次エントリーを上げていきたいと思います (順不同になりそうだし、項目は増減するかも)。 方針 できるだけフレームワークの作法に合わせる できるだけ変更容易性が高くなるようにする できるだけトリッキーにならないようにする といったところです。 環境 各エントリーにも記載しますが、基本的には PHP 5.6 Laravel 5.3 で動作確認ができたコードを載せるつもりです。 バージョンによって書き方に違いがある場合は極力補足するつもりです ( 5 系のみ)。 目次 ルーティング コントローラー リクエスト&バリデーション ビュー テンプレート イベント&ジョブ&通知&キュー Eloquent ORM コマンド サービス テスト 番外
Laravel 5 でデバッグ出力する3つのやり方についてまとめる。 ログファイルに書きだす 2通りの書き方がある。 ヘルパー関数 logger(), info() <?php Route::get('/', function() { $message = ['a' => 1, 'b' => 2, 'c' => 3]; logger($message); info($message); // logger()->notice($message, $context); // logger()->warning($message, $context); // logger()->error($message, $context); // logger()->critical($message, $context); // logger()->alert($message, $context);
Resoruce Controllere Laravel では Controller を作成する際に –resource オプションを指定するとデフォルトで以下のようにメソッドが作成されます。このメソッドが上記のパターンに基づいて命名されています。 例として、PostsController.php を作成してみます。 php artisan make:controller PostsController --resource <?php // app/Http/Controllers/PostsController.php namespace App\Http\Controllers; use Illuminate\Http\Request; class PostsController extends Controller { /** * Display a listing of the
vuejsのhttpを使ったajaxのアクセス時にサーバ側でlaravelのTokenMismatchExceptionになってしまう場合があります。 原因はリクエスト情報にcsrf_tokenがないのが原因です。 Laravel5.3ではインストール時にvuejsのサンプルが初期設定されています。 そのソースのbootstrap.jsで以下のようにhttpのヘッダにcsrf_tokenをセットしています。 Vue.http.interceptors.push((request, next) => { request.headers['X-CSRF-TOKEN'] = Laravel.csrfToken; //ここでリクエストのヘッダにセット next(); }); しかしリクエスト情報を確認してみるとX-CSRF-TOKENがセットされていませんでした。 Laravel5.3に組み込まれ
api/app/Http/routes.php Route::resource('ranking', 'RankingController'); api/app/Http/Controllers/RankingController.php class RankingController extends Controller { public function index() { return 'GET success'; } public function store() { return 'POST success'; } } 上記設定でリクエスト時のパスが/rankingのときにGETだった場合はindexを、POSTだったときはstoreを呼び出すようになっているかと思います。 GETでリクエストした時は 200 okが帰ってくるのですが、POSTした時に500 internal s
今回はフォームを作成して、記事をデータベースに登録します。 laravelcollective/html パッケージの追加 Laravel の View で Form を記述するには直接 HTML を記述する方法とヘルパー関数を使う方法があります。この記事では、パッケージのインストールを体験しておきたいので、laravelcollective/html パッケージをインストールして、ヘルパー関数を使用してみます。 このパッケージは、Laravel 4 では標準で組み込まれていたのですが、Laravel 5 からは別パッケージになり、ユーザーコミュニティーによってメンテナンスされるようになりました。 http://laravelcollective.com/ composer でインストール composer コマンドでパッケージをインストールします。 composer require "l
Laravel では artisan db:seed コマンドを使って、初期データを DB に埋め込むことが可能です。システムに必要な初期データを作成したり、開発で使用するサンプルデータを作成することができます。今回は Articles テーブルに開発で使用するサンプルデータを作成してみます。 Seeder ファイル作成 まずは artisan コマンドで Seeder ファイルを作成します。 php artisan make:seeder ArticlesTableSeeder Seeder ファイルは database/seeds ディレクトリ以下に作成されます。 デフォルトで DatabaseSeeder.php ファイルが既に存在しています。 database └── seeds ├── ArticlesTableSeeder.php └── DatabaseSeeder.php
データベースのバージョンを管理するマイグレーション機能を使ってみます。 マイグレーションを実行して、DBにテーブルを作成する ロールバックして、DBのバージョンを戻す マイグレーションファイルの中身を見てみる DB環境設定 まず初めに、DBの環境設定を行います。DBの環境設定は以前に書いた、データベースの環境設定 を参照してください。 この記事ではデーターベースに SQLiteを指定します。 # .env DB_CONNECTION=sqlite # sqlite のデフォルト設定を使うのでコメントアウト # DB_DATABASE=homestead SQLiteのデータベースファイルを手動で作成しておきます。 touch database/database.sqlite マイグレーションの実行 実は、Laravelプロジェクトを作成した時に2つのマイグレーションファイルが作成されていま
├── docker │ ├── docker-compose.yml │ ├── composer │ │ └── Dockerfile │ ├── data │ │ └── Dockerfile │ ├── fpm │ │ ├── Dockerfile │ │ └── php-fpm.d │ │ ├── docker.conf │ │ ├── www.conf │ │ ├── www.conf.default │ │ └── zz-docker.conf │ ├── gulp │ │ └── Dockerfile │ ├── nginx │ │ ├── Dockerfile │ │ └── config │ │ ├── laravel.conf │ │ ├──
イントロダクションIntroduction BladeはシンプルながらパワフルなLaravelのテンプレートエンジンです。他の人気のあるPHPテンプレートエンジンとは異なり、ビューの中にPHPを直接記述することを許しています。全BladeビューはPHPへコンパイルされ、変更があるまでキャッシュされます。つまりアプリケーションのオーバーヘッドは基本的に0です。Bladeビューには.blade.phpファイル拡張子を付け、通常はresources/viewsディレクトリの中に設置します。Blade is the simple, yet powerful templating engine provided with Laravel. Unlike other popular PHP templating engines, Blade does not restrict you from usi
こんにちはみなさん 以前に@remore に「ミドルウェアってなんなんすかね?」って聞いたら、「ミドルウェアほど幅広く使われる言葉はそうないよね」と応えてきました。 一番初めに私が聞いたミドルウェアの意味は、アプリケーションが動くための周辺機構・・・DBとかキャッシュとかを表していましたが、最近ミドルウェアと聞くと、アプリケーションに於いてリクエストからアプリの実処理に行く間に割り込む中間処理とかフィルタリングとかを意味しているようです。 随分前に、以下のような絵を書いて、自分でミドルウェアについて納得したものです。 今回は、この絵を利用してミドルウェアの動作を再確認しつつ、Laravelのミドルウェアで使える小技を幾つか紹介してみましょう。 自分の持っているLaravelが5.2なので、今回もLaravel5.2を使います。 TL;DR Laravelのミドルウェアは処理の前後に割り込ん
$ php artisan migrate <!! 真っ赤なエラー [PDOException] could not find driver <!! なにがいけないのだろう。。 実行する時、何も考えずにphpを実行したけど、これがいけなかった。 私の環境ではmacデフォルトのphpが実行されたようです。 そうすると、extension=php_pdo_pgsql.dll という部分の問題にぶちあたるみたいです。 参考:初めてのLaravel(PHP Framework) デフォルトの修正はしたくないので、別のPHPを使うことにしました。 幸い、MAMPが入っています。 MAMPにLaravel5を使える環境を作ってみる MAMPのphpを使うことにします。 $ /Applications/MAMP/bin/php/php5.6.10/bin/php artisan migrate Migr
Laravel5 を試したメモ 他のフレームワークを利用している人が、Webアプリを作成するにあたって抑えておくべきポイントだけピックアップしてみた インストール ローカル開発環境の準備 Laravel5は、PHPやNginx、MySQLなど必要なパッケージをインストールずみのVagrantローカル開発環境 Homestead 提供している Homesteadのセットアップ手順については、Laravel 5 ローカル開発環境 homestead 構築手順にまとめている Laravel プロジェクトの作成 すでにPHP実行環境がある場合は、Composerでプロジェクトを生成して開発を始める Laravelインストール手順は、DocumentationのInstallationを参照 $ composer create-project laravel/laravel --prefer-dis
Readouble ( ≒ Read + able × double ) 当サイトは、川瀬の個人運営サイトです。継続のため、寄付・広告の掲載にご協力をお願いしています。(下記詳細) 提供和訳ドキュメント 認識している当サイトの不具合 何か、表示などで不具合を見つけた方は、Xで`@hirokws`まで、お知らせください。順次、対応します。 変更点 ・「ページネーション」と「スカフォールド」の訳語選択機能を削除し、新たにスペース区切りで対象語と置換語を指定する仕様を追加しました。最大5ペア指定できます。 ・ バージョン11から、テストコードがPestとPHPUnitの2ブロック例示されるようになりました。本家ではこれを各コードブロックに表示しているタブで切り代えられるようにしています。当サイトでは両コード表示かPest/PHPUnitのどちらかだけを表示するかを設定から指定できるようにしました
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く