Blogブログ

Category: Laravel

Laravel 5.7 findOrFailの404表示

Laravel 5.7でのエラー表示、 /Exceptions/Handler.php のrender()内で$this->isHttpException($exception) === falseとなっていたのでこうした。 use Illuminate\Database\Eloquent\ModelNotFoundException; class Handler extends ExceptionHandler { */ public function render($request, Exception $exception) { // findOrFailで返るnot foundは $this->isHttpException($exception) === false となるのでここで捕捉 if ($exception instanceof ModelNotFoundException){ // ここで処理 }

Laravel on Docker

Laradockを使ってみた。 コンテナ作成 ディレクトリ作成 mkdir hoge cd hoge Laradock clone git clone https://github.com/laradock/laradock.git .env作成 cp env-example .env コンテナの初期化。 docker-compose up -d nginx mysql workspace phpmyadmin コンテナの立ち上がりを確認 docker-compose 立ち上げ時、nginxの設定をしていないのでエラーが出たが、とりあえずOK コンテナへログインしてみる。 docker-compose exec workspace bash これで、/var/wwwのディレクトリへ入れる。 物理的にはcloneしたのと同じディレクトリになるらしい。 Laravel Install と ngnix設定 そしてlaravel instal。 composer create-project laravel/laravel app01 終了後、nginxの設定をするため一旦停止。 exit docker-compose stop 設定ファイルは、 nginx/sites/default.conf だが、変更内容はまんま nginx/sites/laravel.conf.example これでよい。 なので、 mv […]

Laravel モデルからTable名を取得

Models namespace App\Models; use Illuminate\Database\Eloquent\Model; class SomeModel extends Model { public function getTableColumns() { return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable()); } } Contorller $mdl = new SomeModel(); $tbl = $mdl->getTableColumns();

Laravel Helper best practice

ヘルパーを管理しやすく。 /app/Providers/HelperServiceProvider.php <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class HelperServiceProvider extends ServiceProvider { /** * Register the application services. * * @return void */ public function register() { foreach (glob(app_path().’/Helpers/*.php’) as $filename) { require_once($filename); } } } config/app.php ‘providers’ => [ … App\Providers\HelperServiceProvider::class, … ], これで、app/Helpers/*.phpのファイルがすべてヘルパー用として使える。

Laravelで管理画面作成メモ

Laravelの管理者用の画面作成。 利用ライブラリ このライブラリを使ってみます。 https://github.com/z-song/laravel-admin インストール Vagrant環境なので、sshでログイン。 vagrant ssh cd code/laravel/ パッケージをインストールします。 composer require encore/laravel-admin php artisan vendor:publish –provider=”Encore\Admin\AdminServiceProvider” 管理者テーブルの作成 これで、/config/admin.phpができているはず。 このファイルで、インストールディレクトリ、DBのテーブル名などを定義できる模様。 今回は特に変更せず、そのままテーブルの作成。 php artisan admin:install おっと、エラー。 Syntax error or access violation: 1103 Incorrect table name ” (SQL: create table “ (`id` int unsigned not null auto_increment primary key, `username` varchar(190) not null, `password` varchar(60) not […]

Vagrant centos上のLaravelからメール送信設定

vagrant上のLaravelでメール送信したところ、 530 5.7.1 Authentication required というエラーが返ってきた。。。 そこからメールを送れるようにするまでのログ。 まず、postfixはインストールされているか? whereis sendmail 次の様に表示されれば、パスが通りインストールされている。 sendmail: /usr/sbin/sendmail 次に、postfixのconfファイルを修正 $ sudo vim /etc/postfix/main.cf # localhost -> all inet_interfaces = all # all -> ipv4 inet_protocols = ipv4 # 以下は追加分 relayhost = [smtp.gmail.com]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_tls_security_options = noanonymous smtp_sasl_mechanism_filter = plain smtp_sasl_security_options = noanonymous […]

Laravel + Vue.js でOauth認証を利用したサンプルSPA構築 [4] Oauthサーバの実装

以下を参考に、実装を進めます。 https://readouble.com/laravel/5.7/ja/passport.html Laravel Passportを使ってみます。 このライブラリはOAuthサーバーとして有名なleague上に構築されているとのこと。 https://oauth2.thephpleague.com/ なお、Laravelのインストールとデフォルトのユーザー認証構築済みの前提。 インストール composerでインストール composer require laravel/passport client, accessTokenを格納するテーブル作成 php artisan migrate accessToken生成のためのキーを作成 php artisan passport:install Userモデルへ、traitの追加。 namespace App; use Laravel\Passport\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens, Notifiable; AuthServiceProviderへメソッドを追加。 AccessTokenの発行・失効をこれで管理するよう。 /oauth/authorizeなど一通り使えるURLがこれで設定されるとのこと。 AuthServiceProvider.php use Laravel\Passport\Passport; public function boot() { Passport::routes(); } 設定ファイルで、認証APIリクエストの方式を変更。 […]

Laravel + Vue.js でOauth認証を利用したサンプルSPA構築 [3] 簡易CRUDの作成と認証機能の実装

ここでは公式サイトの中級チュートリアルを参考に。 https://laravel.com/docs/5.1/quickstart-intermediate 認証が手早く実装出来るのはとても楽。 データベース セットアップ データベースを作ったら、.envの編集をして接続確認をしておく。 ※MAMPの場合は、/config/database.phpでunix_socket の調整が必要。 ‘unix_socket’ => ‘/Applications/MAMP/tmp/mysql/mysql.sock’, テーブル作成 今回はUsers, Tasksが必要となる。 Usersは既にデフォルトでLaravel migrationsファイルが存在するのでそれを使う。 Tasksは下記の様にmigrationする。 php artisan make:migration create_tasks_table –create=tasks テーブルは、以下のように定義。 CreateTasksTable.php public function up() { Schema::create(‘tasks’, function (Blueprint $table) { $table->increments(‘id’); $table->integer(‘user_id’)->index(); $table->string(‘name’); $table->timestamps(); }); } 編集したら、migration. php artisan migrate show tablesして, Tableが出来ていることを確認。 認証 Laravelでの認証は超簡単 php artisan make:auth としたあとに、 php artisan migrate […]

Laravel 5.7 OAuth実装

Laravel5.7でOauth認証を実装します。 https://readouble.com/laravel/5.7/ja/passport.html LaravelではPassportを使うことで、非常に簡単にOAuth2サーバの実装が可能になります。 Passportはleague/oauth2-serverというライブラリ上に構築されています。 cakephpなど他のフレームワークでも利用されており、信頼性の高いライブラリです。 https://oauth2.thephpleague.com/ 実装 インストール composerでインストールします。 composer require laravel/passport Migration client, accessTokenを格納するテーブルを作成します。 これもコマンド打つだけです。 php artisan migrate accessToken生成のため、キーを作成しておきます。 強固なセキュリティにするため重要です。 php artisan passport:install Model Userモデルへ、traitを追加します。 User.php namespace App; use Laravel\Passport\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens, Notifiable; AuthServiceProvider AuthServiceProviderへ、メソッドを追加します。 ここでAccessTokenの発行・失効を管理出来るようになります。 AuthServiceProvider.php public function boot() { […]

12