Laravelのカスタマイズいろいろ。

こんばんは。遅らばせながら、最近Laravel初めました。
最初はスタンダードな振る舞いを理解したいところですが、業務案件でいろいろ仕様がきまっておりなにがなんでも合わせろやてきな感じな今日このごろ。命名規則なんてく○くらえ的な実装をしています。

そこでいろいろ、カスタムしていくわけで、その方法をメモしておきます。

公開フォルダ(ドキュメントルート/public)を変更する。

こちらは、サーバー側でApache完備されて、/var/www/htmlがルートな件で、publicを/var/www/htmlに当てる件。

//まずpublicをhtmlにリネーム
$ mv ./public ./html
//続いてapp/Application.phpを作成し以下の通り publicPath()を上書きする。
<?php

namespace App;

class Application extends IlluminateFoundationApplication {
    
    /**
     * Get the path to the public / web directory.
     * @return string
     */
    public function publicPath()
    {
        return $this->basePath . DIRECTORY_SEPARATOR .'html';
    }
}

つづいてルーティングにプリフィックスを加える

システム管理者、社内管理者、外部業者、クライアントetcとそれぞれでURLを変えたいぞー。

ルート設定ファイルで グループを設定すればよし。

//routes/web.php
Route::prefix('admin')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
Route::prefix('manager')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
Route::prefix('suppliyer')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
Route::prefix('client')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
//それぞれ、以下でルーティングできるようになる。
https://example.com/admin/users/login
https://example.com/admin/usmanagerers/login
https://example.com/admin/suppliyer/login
https://example.com/admin/client/login

モデルのカスタム

primaryKey : 主キー、$incrementing : インクリメント(true/false)、$table : テーブル


class Post extends Model
{
    public $primaryKey = 'post_id';
    public $incrementing = true;
    protected $table = 'post';
}