「Laravel」カテゴリーアーカイブ
Laravel 権限追加
1 2 |
$ php artisan make:migration modify_users_admin_column |
これで空のマイグレーションファイルを作ってから、それを編集してフィールドを追記する。
database/migrations/YYYY_MM_DD_HHIISS_modify_users_admin_column.php
1 2 3 4 5 6 7 |
public function up() { + Schema::table('users', function ($table) { + $table->boolean('role')->default(0)->after('remember_token'); + }); } |
app/User.php に追加した権限に対応する処理を追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class User extends Authenticatable { : + /** + * 管理者か? + * @return bool true:管理者 + */ + public function isAdmin() + { + return $this->role == 1; + } } |
ポリシーの設定
モデル依存の場合は個別にPolicyファイルを作るが、全体の場合は、app/Providers/AuthServithProvider.php の boot() に直接記述する。
app/Providers/AuthServiceProvider.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
- use Illuminate\Support\Facades\Gate; : - public function boot() - { - parent::registerPolicies(); + use Illuminate\Contracts\Auth\Access\Gate; : + public function boot(Gate $gate) + { + parent::registerPolicies($gate); + + // user + $gate->define('user', function($user) { + return true; + }); + + // admin + $gate->define('admin', function($user) { + return $user->isAdmin() ? true : false; + }); } |
これで blade 内で
1 2 3 4 |
@can('admin') : @endcan |
で制御できるようになる。
Laravel メアド以外でログインしたい
Laravelとか
Laravel環境構築
Composer インストール
1 2 3 4 |
$ curl -sS https://getcomposer.org/installer | php $ mv composer.phar /usr/local/bin/composer $ composer self-update |
laravelインストール
1 2 |
$ composer global require "laravel/installer" |
プロジェクト作成(インストールバージョンを指定したい場合は –prefer-dist を使う)
1 2 3 |
$ composer create-project laravel/laravel プロジェクト名 $ composer create-project laravel/laravel プロジェクト名 --prefer-dist 5.4 |
Packagist
Composer でインストールできるパッケージのリポジトリ
https://packagist.org/
日本語化
インストールしても日本語化しなきゃいけない。ここら辺を使えば良さそう
1 2 3 4 |
$ composer global require laravel-ja/comja5 $ comja5 -a $ /home/XXX/.config/composer/vendor/laravel-ja/comja5/bin/comja5 -a パスが効いていなかったらフルパスで実行 |
参照:https://github.com/laravel-ja/comja5
デバッグバーを使用する方法
インストールしても日本語化しなきゃいけない。ここら辺を使えば良さそう
1 2 |
$ composer require barryvdh/laravel-debugbar |
.env で APP_DEBUG=true にする。
ユーザー管理
〇が付いているのは入れてみたもの。
リポジトリ | 名前 | 説明 | |
---|---|---|---|
backpack/permissionmanager | backpackを使ったユーザー管理 | ユーザー管理以外の管理画面も入ってしまう| | |
〇 | jeremykenedy/laravel-users | ユーザー管理 | ユーザー情報のCRUD。 権限不要ならこれで十分。 要ローカライズ。 でも結局自作した。 |
swancreative/laravel-users | |||
kiwi/laravel5-usermanager | ユーザー管理 | 登録、プロファイル、パスワードの編集/リセット、ログイン、ログアウト | |
helori/laravel-admin | ユーザー管理 | 管理者権限によるユーザー管理画面追加 | |
highideas/laravel-users-online | ユーザーのオンライン状態 | ||
jrean/laravel-user-verification | Laravel 5.* のユーザーメール確認 | ||
edvinaskrucas/laravel-user-email-verification | より簡単なユーザーメール確認 | Laravel5.5ではエラーが出る。※1 | |
bican/roles | 役割と権限を処理するパッケージ | ||
mressex/laravel-auth-profile | プロフィール | メールアドレス編集はない | |
berkayoztunc/laravel-profile | プロフィール | メアド編集はあるが画面が多い | |
〇 | werneckbh/profile | プロフィール | 名前、メアド、パスワード、アイコン(Gravater)、削除が可能。 でも結局自作した。 |
※1
1 2 |
Trait 'Illuminate\Console\AppNamespaceDetectorTrait' not found |
のエラーが出たら、該当するソースを開いて以下の様に修正する。
1 2 3 |
- use Illuminate\Console\AppNamespaceDetectorTrait; + use Illuminate\Console\DetectsApplicationNamespace; |
モジュール化
リポジトリ | 説明 | |
---|---|---|
nwidart/laravel-modules | AsgardCMSで使用されている | |
caffeinated/modules | ||
pingpong/modules | nwidart/laravel-modulesのベース |
CMS
CMSを使うとそちらに引っ張られるので自前でサービスを組む場合は注意が必要
リポジトリ | 名前 | 説明 | |
---|---|---|---|
october/october | October CMS | ここら辺を参考に https://qiita.com/pikanji/items/ac05bbfbab955bf7fc5b | |
lavalite/cms | Lavalite CMS | ||
pyrocms/pyrocms | |||
asgardcmd/platform | AsgardCMS | Laravel 5 で構築された、モジューラー、多言語CMSで MITライセンス付き | |
graham-compbell/bootstrap-cms | Bootstrap CMS | ||
typicms/base | Multilingual CMS | ||
web-feet/coastercms | Coaster CMS | ||
orchid/cms |
リポジトリ | 名前 | 説明 | |
---|---|---|---|
barryvdh/laravel-dompdf | dompdf | laravel pdf でググるとこれが出てくる 参考 html形式? | |
vsmoraes/laravel-pdf | dompdf | ||
niklasravnsborg/laravel-pdf | mPDF | mPDFは問題があるらしい | |
elibyy/tcpdf-laravel | tcpdf | ||
〇 | tecnickcom/tcpdf | tcpdf | laravel tcpdf でググると出てくるのはこっち 参考1、参考2 |
〇 | setasign/fpdi | fpdi | ↑tcpdf を使うにはこれも必要 |
〇 | setasign/fpdi-tcpdf | fpdi-tcpdf | ↑tcpdf を使うにはこれも必要 |
IPAフォントのインストール 設定方法はこれ
CentOS
1 2 |
$ sudo yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts |
Debian系
1 2 3 4 |
$ apt-get install fonts-ipafont-gothic fonts-ipafont-mincho $ php vender/tecnickcom/tcpdf/tools/tcpdf_addfont.php -b -t TrueTypeUnicode -f 32 -i /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf |
CRUD
リポジトリ | 名前 | 説明 | |
---|---|---|---|
appzcoder/crud-generator | CRUD作成 | appzcoder/laravel-admin laravel管理画面も良さそう | |
infyomlabs/laravel-generator | 管理画面もあるCRUD作成 | ||
dog-ears/crud-d-scaffold | 一覧画面とかも作成できるスカフォールド | 作者は日本人 Qiita 上手く動かなかった |
他
未検証もあり
リポジトリ | 説明 | 補足 | |
---|---|---|---|
xethron/migrations-generator | データベースから migration 作成 | ||
laracasts/generators | リソース、移行、モデルなどを迅速に生成 | make:migration:schema, make:migration:pivot, make:seed を追加 | |
jenssegers/mongodb | MongoDBベースのEloquentモデルとクエリビルダー | ||
fideloper/proxy | 信頼できるプロキシを設定 | TrustedProxyはLaravel5.5に 含まれている。設定方法 | |
backpack/crud | 管理インターフェースをすばやく作成 | 商業用には39ユーロ必要 | |
nilportugues/laravel5-json-api | JSON APIトランスパッケージ | ||
flugger/laravel-responder | APIレスポンス作成パッケージ | ||
spatie/laravel-menu | HTMLメニュージェネレータ | ||
igaster/laravel-theme | テーマ | ||
viacreative/sudo-su | 他ユーザでログイン | ||
usmanhalalit/laracsv | CSV出力 | ||
schuppo/password-strength | パスワード強度 | ||
intervention/validation | 追加バリデーション関数 | ||
hyn/multi-tenant | マルチテナント | ||
hesto/multi-auth | マルチAuth | ||
lynsarmy/csv-seeder | CSVでSeederできる | ||
crocodicstudio/crudbooster | CRUDブースター | ||
chrisbjr/api-guard | APIを認証する | ||
yab/laracogs | さまざまなコマンド、サービス、ファサード、定型文を使用 | ||
talyssonoc/react-laravel | ReactJS | ||
spatie/laravel-paginateroute | ページネータ | ||
sebastiaanluca/laravel-helpers | PHPとLaravel固有のヘルパーの広範セット | ||
propaganistas/laravel -fakeid | Eloquentモデルの自動ID難読化 | ||
mnabialek/laravel-sql-logger | SQLロガー | ||
marcelgwerder/laravel-api-handler | REST-APIのためのヘルパー関数 | ||
francescomalatesta/laravel-api-boilerplate-jwt | すぐ使用できるREST APIを作成するAPIボイラープレート | ||
crestapps/laravel-code-generator | クリーンなコードジェネレータ | ||
brotzka/laravel-dotenv-editor | .envエディタ | ||
zeeshanu/opus | チームのためのナレッジベースオープンソース | ||
user11001/eloquent-model-generator | データベースから Eloquentモデル自動生成 | ||
meness/verifi | 電子メール認証を処理する | ||
libern/qr-code-reader | シンプルなPHP QRコードリーダー/デコーダ | ||
codeitnowin/barcode | バーコードQRコードジェネレーター | ||
guzzlehttp/guzzle | 今時のPHP HTTPクライアントのGuzzleを使ってみた |
おまけ
composer高速化
1 2 3 4 |
$ composer self-update バージョンアップする $ composer config -g repos.packagist composer https://packagist.jp リポジトリを国内のものにする $ composer global require hirak/prestissimo composer高速化用のプラグインを導入する |
元に戻すには
1 2 3 |
$ composer config -g --unset repos.packagist リポジトリを消す $ composer remove hirak/prestissimo composer高速化用のプラグインを削除する |