【laravel-admin】インストール&画面作成まで 編

目的 ここ最近、しばらくlaravel-adminという管理画面を作成するためのライブラリを使っていたので、調べたことやつまづいたところも含めて少しずつ書き起こそうと思います。 まずはインストール編です。簡単に管理画面を確認できるところまで見ていきましょう。 laravel-adminとは laravelで簡単にDBの管理画面を作成することができるライブラリです。 ドキュメントやデモサイトなど使用するために必要な資料が充実しており、難しいカスタムを行う必要がなければものすごく簡単に管理画面が構築できます。 Laravel-admin(ドキュメント) GitHubページ 基本的な使用方法は上記でカバーし、カスタマイズして使用したい際には直接ソースコードを読んで適宜書き換えていく形になります。 主観ですが、コード内のコメントも(おそらく書き換える前提の部分は)丁寧に書かれているので、しっかり読み解けば問題ないかと思います。 プロジェクトの作成 既に開発しているlaravelプロジェクトに追加する場合は、この章は飛ばしてもらって大丈夫です。 何もないところからlaravel-adminを試したい方は、まずlaravelプロジェクトを作成するところから始めましょう。 公式によると、現在のバージョンでは以下の環境が推奨されるようです。 PHP 7+ laravel 5.5+ This package requires PHP 7+ and Laravel 5.5, for old versions please refer to 1.4 laravel-admin install $composer create-project --prefer-dist "laravel/laravel=5.5.*" <project-name> DBも必要になってくるので、.envにDBの情報も書き足しておきましょう。 よければこちらの記事も参考にしてみてください。 【Laravel+MySQL+nginx】docker-composeで最小構成の環境構築 - SawaLog インストール laravelの準備ができたら早速laravel-adminをインストールします。 $composer require encore/laravel-admin インストールが終わったら下記コマンドを実行します。 $php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider" $php artisan admin:install これらを実行すると、app/Adminディレクトリが作られます。これからの実装はこのディレクトリ配下で行うことになります。 ファイルの初期配置は以下。 app/Admin ├── Controllers │ ├── ExampleController.php │ └── HomeController.php ├── bootstrap....

<span title='2021-02-19 12:01:46 +0900 +0900'>2月 19, 2021</span>

【Laravel】Laravelで使用するDBををReadWrite構成にする時の確認でちょっとハマった話

起こった問題 タイトルの通り、Laravelで使用するDBのhostをRead/Weiteで切り替えたい、と思って設定をしていました。 設定後下記を確認して、 >>> config('database.connections.pgsql') => [ "read" => [ "host" => [ "postgres2", ], ], "write" => [ "host" => "postgres", ], ... 反映されてるな、と思って念の為connectionも見てみました。 >>> DB::connection('pgsql::read')->getConfig(); => [ ..., "host" => "postgres", ] ……あれ? Readコネクションなのでpostgres2であって欲しいのに、postgresが出てきてしまいました。 反映されてないのかな?と思い色々調べたので、備忘録として置いて起きます。 調べたこと getConfigで参照されるconfigは、 Illuminate\Database\Connectors\ConnectionFactory::make内で、 /** * Establish a PDO connection based on the configuration. * * @param array $config * @param string|null $name * @return \Illuminate\Database\Connection */ public function make(array $config, $name = null) { $config = $this->parseConfig($config, $name); if (isset($config['read'])) { return $this->createReadWriteConnection($config); } return $this->createSingleConnection($config); } createReadWriteConnectionが呼び出され、...

<span title='2021-02-19 12:01:46 +0900 +0900'>2月 19, 2021</span>

【Laravel】フォームリクエストでのバリデーションに条件付きの制約を追加する

...

<span title='2021-02-19 12:01:46 +0900 +0900'>2月 19, 2021</span>

【Laravel】独自ペジネータで自前のCollectionを使う

...

<span title='2021-02-19 12:01:46 +0900 +0900'>2月 19, 2021</span>

【Laravel+MySQL+nginx】docker-composeで最小構成の環境構築

目的 laravel-admin使いたいだけの用途にLaradockは重すぎる…… ので、お勉強も兼ねて、docker-composeでLaravel&MySQLのみの環境を立てました。 その上でlaravel-adminの管理画面まで開けるようにしてみます。 構成 project_root_dir ├── docker-compose.yml ├── docker │ ├── nginx │ │ ├── Dockerfile │ │ └── default.conf │ ├── php │ │ └── Dockerfile │ └── db │ │ ├── my.cnf │ └── Dockerfile └── laravel └── ... 手順 docker-compose.ymlを作成 # docker-compose.yml version: "3.5" services: app: build: context: . dockerfile: ./docker/php/Dockerfile args: PROJECT_NAME: app_admin volumes: - ./:/var/www/html depends_on: - database links: - database ports: - "4000:80" - "4001:8080" tty: true database: image: mysql:5....

<span title='2021-02-19 12:01:46 +0900 +0900'>2月 19, 2021</span>