Laavel-admin 설치 시 추가 정보

지금까지 Laavel-admin을 처음 사용해 봤기 때문에 그때의 노트입니다.

전제 조건


php 7.1
Laravel 5.5

설치하다.


여기.처럼 설치하면 됩니다.

로그인


방문
  • http://localhost 등)/admin
  • admin/admin으로 로그인
  • CRUD 구현


  • Controller
    직접 사용했어요여기..

  • route
    참조여기.는 Resources를 사용했습니다.
    User 모델용 route
    $router->resource('users', UserController::class);
    
    UserController::class는 app/Admin/routes입니다.php로 이름 공간을 지정하지 않았기 때문에 IDE 등에 지적될 수 있습니다
    app/Admin/routes.php
    Route::group([
        'prefix'        => config('admin.route.prefix'),
        'namespace'     => config('admin.route.namespace'), // ここで名前空間を指定
        'middleware'    => config('admin.route.middleware'),
    
    app/config/admin.php
        'route' => [
    
            'prefix' => 'admin',
    
            'namespace' => 'App\\Admin\\Controllers', // 実際に指定している名前空間はこちら
    
            'middleware' => ['web', 'admin'],
        ],
    
    처음부터 들어왔으니까,routes.php에서 정의할 필요가 없습니다 use App\Admin\Controllers.

  • 메뉴
    직접 액세스여기.의 URL

    GUI를 통해 액세스할 수 있습니다.

  • 확인
    위 메뉴에 Users가 추가되었으므로 방문해 보십시오.

    일람 화면을 표시하다.

  • 머리글, 설명, 항목 및 필터 설정
    먼저 화면에서 머리글과 설명을 편집한다.(다른 페이지도 마찬가지)
    app/Admin/UserController.php
    public function index()
    {
        return Admin::content(function (Content $content) {
    
            $content->header('ユーザー管理');
            $content->description('登録されているユーザーの一覧です。');
    
            $content->body($this->grid());
        });
    }
    
    그런 다음 목록에 표시할 항목을 추가합니다.
    (기타 옵션은 여기. 참조)
    app/Admin/UserController.php
    protected function grid()
    {
        return Admin::grid(User::class, function (Grid $grid) {
    
            $grid->id('ID')->sortable();
            // 表示項目を追加
            $grid->column('name', '氏名');
            $grid->column('email', 'メールアドレス');
            $grid->column('department.name', '部署名'); // リレーションを貼っていればUserモデルと同じように取得出来ます
    
            $grid->created_at();
            $grid->updated_at();
    
            // フィルターを追加
            $grid->filter(function($filter){
                $filter->like('name', '氏名');
                $filter->like('email', 'メールアドレス');
                $filter->like('department.name', '部署名');
            });
        });
    }
    
    화면에 다시 액세스하면 항목과 필터가 추가됩니다.

  • 편집 가능한 항목 추가
    기본적으로 편집 화면은 id,createat, updated_at만 표시하고 편집 가능한 항목이 없기 때문에 추가합니다.
    (기타 옵션은 여기. 참조)
    app/Admin/UserController.php
    protected function form()
    {
        return Admin::form(User::class, function (Form $form) {
    
            $form->display('id', 'ID');
    
            // 氏名とメールアドレスはテキストボックスとして編集項目に追加
            $form->text('name', '氏名');
            $form->text('email', 'メールアドレス');
    
            // 所属部署はDepartmentモデルから[[id => name]...]の値を取得し、selectボックスとして追加
            $form->select('department_id', '所属部署')->options(
                Department::pluck('name', 'id')
            );
    
            $form->display('created_at', 'Created At');
            $form->display('updated_at', 'Updated At');
        });
    }
    
    편집 화면에 액세스하면 추가 편집 가능한 항목이 표시됩니다.
  • 다른 환경에 적용


    실복은 문서를 읽기 시작할 때부터 실복이 완성될 때까지 1시간도 안 되는 속도로 완성되기 때문에 바로 본격적인 환경에 들어갑니다!그렇게 생각하지만 여기서 살짝 걸려 넘어져서 여기도 남아있어요.

  • 소스 코드를 사용하여 compose install 수행
    git pull이든 뭐든 최신화될 거야.
    인스타그램에서 갔어요.
    php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
    php artisan admin:install
    
    아마git에서 관리하기 때문에 필요 없어요.

  • (필요한 경우) Seeder에서 데이터 입력
    본공연 등 1부터 데이터를 정비하는 상황은 미묘하지만 다른 곳에 구축할 때는 넣는 게 좋다.php artisan admin:install에서 진행됐지만 앱/Admin이 완성되면 오류가 발생하기 때문에 개별적으로만 Seeder를 실행하는 것이 좋습니다.
    실행 Seeder여기.

  • (이쪽도 필요하다면) HTTPS화
    Laavel-admin은 기본 HTTPS화가 없습니다. 필요하면 HTTPS로 접근하십시오.
    변경할 점은요.
    config/admin.php
    /*
     * Use `https`.
     */
    // TrueであればHTTPSでアクセスされるようになるので、環境に応じて変更して下さい
    'secure' => (env('APP_ENV', 'local') === 'production'),
    
    네.

  • (그리고 여기도 필요하면) 페이지가 HTTPS로 설정됨
    3. HTTPS화하더라도 해당 페이지에 대한 개별 하이픈 넣기가 필요합니다.
    나는 몇 가지 방법이 있다고 생각한다.
    app/Providers/AppServiceProvider.php
    public function boot()
    {
        // 本番のみページネーションで生成されるURLをHTTPSにする
        if (config('app.env') === 'production') {
            $this->app['request']->server->set('HTTPS','on');
        }
    }
    
    대응했어.
  • 최후


    문서를 꼼꼼히 써서 자세히 읽으면 이 글을 볼 필요가 전혀 없지만 심심한 사람이 있다면 도움이 됐으면 좋겠어요.

    좋은 웹페이지 즐겨찾기