tohokuaikiのチラシの裏

技術的ネタとか。

Laravel

LaravelのBladeで生のStringをテンプレートとしてParseする

どんな要望やねん…ていうか、こんな感じですね。 laravel.io Controllerの中で、 render(); // $text = 'This is bar.'; 結構この手の質問は見かけられるんだけど、どれも5年以上前ので。 ヘルパ関数ひとつ作れっていう回答 こんな感じ laracasts.com

LaravelでDateをAPIからPATCHする時

JavaScriptのDate objectが飛んでくるので ミューテタを使って attributes['payment_date'] = $value ? Carbon::parse($value) ->timezone(config('app.timezone'))->format('Y-m-d 00:00:00') : null; } ってやっていい感じにしてあげないとダメっぽい。え…

LaravelのEloquentでDBに登録する時にTEXTなフィールドがNULLでINSERTしようとして困ってしまう件

TEXTフィールドにNULLはダメだよってDBから怒られてしまう。 空文字列にしてくれればいいのに… ということで、こんな感じで間に合わせ。 etc)) { $post->etc = ''; } }); } } なんかいい方法ないかな…

Laravelの配列をValidateする時の指定とかエラーメッセージの加工とか

JSONで投げられる値で { address: "Tokyo", entries: [ {name: "", email: ""}, {name: "", email: ""} {name: "", email: ""} ] } みたいなのをValidateしたい時。 単にVlidateすればいい場合 FormRequestのルールに ['required'], ]; } と書いておけばい…

LaravelのRequestを使ったForm ValidateにRequestクラス内共通の処理を使いたかった

つまり、Requestのメソッドを使いたかったんだけど、それはできないみたいなのでクロージャを使った。 [ 'required', $my_validate, こんな感じ。 requiredを満たした時、この$my…

LaravelでPolicyを追加する時に、ModelがInjectionしてくれなくて困った件

この辺りを読んでて… readouble.com route/api.phpに name('user.create.confirm')->middleware('can:confirm,App\User'); Route::post('user/{user}/confirm', 'UserController@confirm')->name('user.update.confirm')->middleware('can:confirm,App\User'…

LaravelでSQLログを出力するのをProviderで実装する

以前書いたコレ。 tohokuaiki.hateblo.jp Providerで実装する。 Providerを作る こちらを参考に。 qiita.com app/Providers/DataBaseQueryServiceProvider.php

Laravelの俺メモTIPS

ユーザーのダミーデータ登録 database/seeds/DatabaseSeeder.php に create(); と、config/app.php に 'ja_JP', として、 ./artisan db:seed で10件生成。

LaravelのAuthをAPIで効かす時にいつも忘れるのでデジタルタトゥーに刻みたい

make authしてから $ ./artisan make:auth は、Laravelの古い奴だっけ… じゃなくて $./artisan ui vue --auth してから、 APIでもSessionを効かす app/Http/Kernel に [ // 省略 ], 'api' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Co…

LaravelでAdminlteをjeroennoten/Laravel-AdminLTE使ってちゃんと導入してみる

1年前のこれの続き tohokuaiki.hateblo.jp LaravelプロジェクトをVueベースで管理画面まで よくある感じで。 $ composer create-project laravel/laravel=6.* --prefer-dist junoe_app $ composer require laravel/ui=1.* $ ./artisan ui vue --auth $ ./art…

Deployerを使ってLaravelを本番環境にデプロイする場合のsshの接続設定

開発して、本番環境にDeployのたびにsshログインしてmigrateとかするのが面倒…というか忘れるので、Deployerというのを使った。 インストール composerからインストール LaravelアプリケーションDirectoryでComposerでインストール。 $ php -d memory_limit=…

Laravelで"This action is unauthorized."と出て、Policy設定してるのに…とModelの関係を追ってみた件

あるControllerを継承した別のControllerで authorizeResource(Order::class, 'order'); したら、Policyがスルーされてしまった。 authorizeResource()の引数は何に使われるのか? 第一引数から、Policyが設定される。上の場合だと、OrderPolicyになる。 第…

laravel-mixでnpm run watchしたら無限ループに陥ったので対処したこと

何気なくsassを書き直したら、npm run watchしてるのが無限ループしてた… 原因は画像のタイムスタンプ? 原因を探ってみると、 header { background-image: url("../images/icon_header.png"); } が原因っぽい。 試しに、npm run prodしてみると、無事にコン…

Laravelのview(bladeテンプレート)からVue.jsにグローバルパラメータを渡したい時など

最初、 <router-view app_name="{{ config('app.name') }}"></router-view> とかしてたけど、こんなの逐一やってらんねー。 検索したけどあんまり見つからない…ajaxで渡せとかそんな面倒なこと… ということで、「ぼくのかんがえるさいきょうのLaravelからVueへの変数の渡し方」 Laravel 側 Controllerで変数を渡す config('a…

MySQLのUNIQUE制約のキー長制限に引っかかった

LaravelのユーザーテーブルのEmailのUNIQUEが掛けられなかった。 Server version: 5.5.65-MariaDB MariaDB Server SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `u…

Vue + Laravelでサブディレクトリに展開する際にやったこと。

Laravel Apacheのhttpd.confにてバーチャルホスト設定にAliasを書く <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName www.example.com DocumentRoot /home/vagrant/htdocs Alias /baccarat_campaign_form "/home/vagrant/laravelapp/public" <Directory "/home/vagrant/laravelapp/public"> Options FollowSy</directory></virtualhost>…

SSOをLaravel+Saml2で行ったところプロキシを挟んだらログインできなくなった。

プロキシだとhttpでアクセスするのでその周りだろうなってことで このあたりでエラーが出ている。 vendor/aacotroneo/laravel-saml2/src/Aacotroneo/Saml2/Http/Controllers/Saml2Controller.php の acs(); の所のエラーが array(2) { ["error"]=> array(1) …

Laravelのファイルアップロードのルートパス

config/filesystems.php に入っているので、 file('foo')->store()する際には、 config('filesystems.disks.public.root'); のpublicが付いてるっぽいので、後で取るといは、 config('fil…

LaravelでEthnaのフォームフィルターみたいなやつ

あれな。Inputの時にPOST値を自動的に全角から半角にしてくれたりするやつ。あれ、すげー便利なんだけど、Laravel本体にはないらしい。 waavi/sanitizerをインストール composerにあるので https://packagist.org/packages/waavi/sanitizer $ composer requi…

LaravelのRequest->rules()がどの条件で掛かるのか?

が良くわからなかったので追ってみた。 ざっとBreakpointを設置して app->afterResolving(ValidatesWhenResolved::class, function ($resolved) { $resolved->validateResolved();…

LaravelのPolicyで丸二日ほど悩む…効かないってか効きすぎるというか…

やりたいこと apiのrouteに対して適宜認可を掛ける。対象になるのは、usersテーブル。これはLaravelのデフォルトのユーザーテーブル。 show/editできるのは、管理者とその当該ユーザーのみとか。 やったこと routes/api.php で group(function () { Route::r…

俺的な静的Facadeの作り方

LaravelでオレオレUtililyクラスを使いたいと思った。Staticメソッドを自分が使う分だけのもの。 で、Facadeを使うと良いかなと思って、LaravelのFacadeを作り方を調べたんだけど、なんか、ServiceProviderを登録したりFacadeクラスと実行クラスを分けたりと…

LaravelのPolicyを二重にしたらダメだった

$ ./artisan --version Laravel Framework 6.18.26 です。 Policy使ってアクセス制限 こんな感じ。 authorizeResource(User::class); } /** * @param Request $request * @return \Illuminate\Http\JsonRespon…

Laravel-AdminLTEを使ってみたメモ

AdminLTEを使いたかったのでこちらを使った。以前は違うの使ってた。 インストールとかは簡単なので略 @extends('adminlte::master') adminlte::は、ServiceProviderで付け加えてるっぽい。 vendor/jeroennoten/laravel-adminlte/src/ServiceProvider.php pa…

Laravelのauthを追ってみたメモ

$artisan make:auth したという前提で。 Laravel5.4でマルチ認証(userとadmin)を実装する方法 | 大分のITコンサルタント | 高橋商店 というのをやってみて、認証の中で振り分けをしたかったというケース。 普通にファーストアクセスで認証必要なURLにアク…

LaravelのAuthのURIを変更する。

routes/web.php に

Laravel5.4でAdminLTEを使う

AdminLTEという管理画面のテンプレートがある。これをLaravelで使いたい。 2019年追記:コッチの方が良さそう。 https://packagist.org/packages/jeroennoten/laravel-adminlte composerで簡単に使えるようにならないものか と思って、packagistでLaravel ad…

LaravelのメソッドのTypeHintがどうやってパラメータをうまい具合にセットしているのか?

Routingクロージャや、Controllerメソッドで

Laravel5でDBのQueryログを出すEvent Listenerを作る

app/(Handlers/)Events/QueryLogTracker.php 雛形は、 $ ./artisan make:event QueryLogTracker で作る。

「Laravelリファレンス」3 データベース

マイグレーション つらつらっと読んで気になったところだけメモ artisanのmake:migrationコマンドで作るClass名の重複に注意 コマンド引数の実行内容(下記の場合はcreate_authors_table)は同じものが被るとClass名として被ってしまい、Fatalになるので気を…