[Laravel] リクエストされた複数の値をまとめて存在確認する
以前から可能だったようですが、公式ドキュメントが更新されたのでメモ。 When given an array, the method will determine if all of the specified values are present: また、引数として複数渡しも可能なようです。 Illuminate\Http\Concerns\InteractsWithInput@has
以前から可能だったようですが、公式ドキュメントが更新されたのでメモ。 When given an array, the method will determine if all of the specified values are present: また、引数として複数渡しも可能なようです。 Illuminate\Http\Concerns\InteractsWithInput@has
Eloquentモデルにおいて、でリレーションを行なっているモデルが存在しない場合にが返却されていましたが、モデルのインスタンスを返却できるメソッドが追加されました。 関連するユーザーモデルが存在しない場合に、ユーザーモデルのインスタンスが返却されます。 また、初期値を代入することが可能です。
メソッドの存在を知らなかったのでメモ。 LaravelのEloquentで1対多の関係にあるテーブルに対して複数件のレコードを挿入します。 ユーザーに対して複数のタスクを登録するサンプルです。 ユーザー周りは既存のものをそのまま利用し、タスクモデルとマイグレーションファイルを作成します。 コントローラーを作成してルーティングを変更します。 へアクセスすると、新しいユーザーが作成され、ユーザーに紐づくタスクが追加されます。
Laravelでのデータベース更新クエリでを更新したくない、カラムが存在しない場合など。 既存のEloquentモデルでは下記の用に自動で挿入されます。 を更新したくないモデルで以下のようにオーバーライドします。 に関しても同じように対応可能です。
Laravel5.4での認証周りで発火されるイベントが変わっていたのでまとめ。 各プロパティへは でアクセス出来る。 \Illuminate\Auth\Events\Registered Illuminate/Auth/Events/Registered | Laravel API ユーザーが作成された時に発火 \Illuminate\Auth\Events\Attempting Illuminate/Auth/Events/Attempting | Laravel API ユーザーが認証を試みた場合に発火 \Illuminate\Auth\Events\Failed Illuminate\Auth\Events\Failed | Laravel API ユーザーが認証を試みたが、失敗した場合に発火 \Illuminate\Auth\Events\Login Illuminate\Auth\Events\Login | Laravel API ユーザーが認証を試みて、成功した場合に発火 \Illuminate\Auth\Events\Logout Illuminate\Auth\Events\Logout | Laravel API ログアウトした場合に発火 \Illuminate\Auth\Events\Authenticated Illuminate\Auth\Events\Authenticated | Laravel API クッキーから自動ログインした場合や、システム側でログイン状態にした場合に発火 \Illuminate\Auth\Events\Lockout Illuminate\Auth\Events\Lockout | Laravel API ユーザーがロックされた場合に発火
を利用することで、複数のVersionのNode.jsを管理することができます。 ※ Ubuntuへのインストール ビルドに必要なパッケージのインストール nvmのインストール Git Hub ページからインストールスクリプトを取得して実行します。 完了後、に, , のいずれかにPathが追加されるので、ターミナルを再起動します。 nvmの使い方 インストール可能なNode.js を確認するには、コマンドを実行します。 好きなVersionのNode.jsをインストールするには、コマンドを実行します。 デフォルトでNode.jsのVersionは最新のものが使われます。 特定のVersionを使う場合は、コマンドを実行します。 node で管理されているれているNode.jsのVersionを確認するには、コマンドを実行します。 デフォルトで使用するnode のバージョンを指定するには、コマンドを実行します。 現在、デフォルトとして指定されているNode.js のVersion明示的に使用するように指定する場合は、コマンドを実行します。 Ubuntu でapt を使用してNode.js をインストールする3 つの方法(Ubuntu 15.04, Ubuntu 14.04.2 LTS) - Qiita
例えば、「public」から「publichtml」へ変更する場合。 とりあえずフォルダ名前を変えてみると・・ と、怒られます。 原因 vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php ここ(chdir($this->laravel->publicPath());)でpublicフォルダが存在しないと。 パスはどこで登録されている? bootstrap/app.php ここでLaravelの各パスが登録されている。 Illuminate/Foundation/Applicationクラスを見てみると、 vendor/laravel/framework/src/Illuminate/Foundation/Application.php と、パワーコーディングされており、変数等では上書きできない模様。 publicpath()をOverrideする Illuminate\Foundation\Applicationを継承した、app/Application.phpを作成します。 app/Application.php 作成した\App\Applicationクラスを読み込む様に編集します。 artisanコマンドで確認 publichtmlフォルダが読み込まれました! ※ ディレクトリの階層を変更する場合は、public/index.php内にも変更が必要です。
PHPでのJavascriptのServer Side Renderringの方法としては、 1. PHPで行う 2. Node.jsなどでパースしたものを受け取る のどちらかで実装しているみたい。 今回は1.のPHPで行ってみます。 便利そうなパッケージがあったので使います。 react-laravel Composerでインストール Installationの項目にあるをcomposer.jsonへ追記してreact-laravelをインストール。 にのプロバイダーを追記します。 なお、PHPのExtenstionとしてv8jsが必要 NPMのインストール Reactを利用するだけであれば必要なさそうでしたが、JSXを利用する為には1度コンパイルする必要があるので必要なものを入れます。 gulpの設定 react-jsでのJavascriptの読み込みが、デフォルトではなので、ここにJavascriptファイルがコンパイルされるよう追記します。 コンポーネント作成 以下のファイルを作成してビルドします。 作成後にコンパイル Bladeファイルの編集 動作確認 HTMLソース上に表示されました! また、見出し部分をクリックするとアラートが表示されることも確認。
\Illuminate\Console\Command クラスではスクリプト実行時にコンソール上にログなどを出力するメソッドがあります。 各メソッドにより、コンソール上で確認しやすくなるようにメッセージを色付けしてくれます。 バッチ処理などに使うJobや、Seeder等で利用されています。 サンプル: また、コンソール上で対話可能なメソッドも用意されており、 入力によって異なる動作をする場合などに役立ちます。 $this->command->confirm() 確認を答うメソッドです。 戻り値として true | false が返却されます。 サンプル: 実行: $this->command->ask() コンソールへの入力を求めるメソッドです。 戻り値として入力された内容が返却されます。 サンプル: 実行: $this->command->askWithCompletion() 入力されるであろう内容を事前に登録しておくことで、コンソールでの入力を補完してくれます。 戻り値として入力された内容が返却されます。 ※ $this->command->anticipate() のエイリアスです。 サンプル: 実行: を入力すると、を補完してくれるはずです。 $this->command->secret() コンソールへの入力を求めるメソッドですが、入力内容が表示されません。 戻り値として入力された内容が返却されます。 サンプル: 実行: $this->command->choice() 用意した候補から、コンソール上で選択できます。 戻り値として選択された内容が返却されます。 サンプル: 実行: 最後に Laravel上ではクラスを参照していますが、 で定義されている にはが代入されており、 コンソール出力に関する動作はこちらを参考に。