BackEND/Laravel Project

라라벨에서 어드민계정을 만드는방법 breeze

smartlittlepuppy 2022. 8. 4. 16:12
반응형

user테이블에 is_admin을 추가해줘서 어드민에 해당되는것을 1로 설정하고 나머지는 회원가입해서 들어오는것은 0으로 자동 저장된다. 

 

ADMIN계정을 만드는방법

1. 라라벨에서 제공해주는 기본테이블들을 데이타베이스에 업로드한다. 

php artisan migrate

 

2. 아래 명령어를 실행

Breeze는 라라벨에서 제공하는 인증기능이다. 아래 명령어로 설치하면,  로그인,  회원가입, 비밀번호찾기 등 인증과 관련된 것을 모든것을 자동으로 설치해준다. 

composer require laravel/breeze --dev

php artisan breeze:install 

npm install

npm run dev

 

3. 이렇게까지하고, 아래 명령어를 실행하기전에 users테이블에 아래 필드를 추가한다. 

$table->boolean('is_admin')->default(false);

4. php artisan migrate

5. seeder폴더에 Admin파일을 생성한다. 

php artisan make:seeder Admin

User::Create([
    'name' => 'Admin',
    'email' => 'admin@gmail.com',
    'email_verified_at' => now(),
    'password' => '', // password
    'remember_token' => Str::random(10),
    'is_admin' => 1
]);

그리고 위와같이 코드를 추가한다. 

 

6.  seeder폴더에DatabaseSeeder파일을 생성한다. 

public function run()
{
    // \App\Models\User::factory(10)->create();
    $this->call(Admin::class); 
}

 

7. 아래 명령어를 실행한다. 

php artisan migrate:fresh --seed

 

8. 이렇게하면 자동으로 웹브라우저 상단에 login, register가 생성된다. 


1. middleware에 Admin을 만든다. 

php artisan make:middleware Admin

public function handle(Request $request, Closure $next)
{
    if(!auth()->check() || !auth()->user()->is_admin){
        abort(403); 
    }
    return $next($request);
}

2. Kernel.php 에 다음과 같이 추가한다. 

protected $routeMiddleware = [
    라라벨에서 기본으로 제공하는것들이 여기에 있다. 
    'admin' => Admin::class
];

3. web.php

Route::middleware(['auth', 'admin'])->name('admin.')->prefix('admin')->group(function(){

});

4. Admin에 AdminController 를 만든다

php artisan make:controller Admin/AdminController 

 

5. app > View > Components > 

AppLayout.php파일을 AdminLayout.php로 변경한다. 파일안에도 아래와같이 변경한다. 

return view('layouts.admin');

6. views > layouts>app.blade.php파일을 admin.blade.php로 변경한다.


1. Category 모델을 만들고, 테이블도 만든다. 

php artisan make:model Category -m

php artisan make:model Menu -m

php artisan make:model Table -m

php artisan make:model Reservation -m

 

데이타베이스에 위에서만든 테이블들을 업로드한다.

php artisan migrate

 

2. 이렇게하면, index(), create(), store(), show(), edit(), update(), destroy()

php artisan make:controller Admin/MenuController -r

php artisan make:controller Admin/CategoryController -r

php artisan make:controller Admin/TableController -r

php artisan make:controller Admin/ReservationController  -r

 

3. authorize와 rule이 있다. 

php artisan make:request CategoryStoreRequest

권한을 True로 변경했다.  

public function authorize()
{
    return true;
}

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        //
        'name' => ['required'],
        'image' => ['required', 'image'],
        'description' => ['required']
    ];
}

4. 이미지 연결을 위해서 아래 명령어 사용해야한다. 

php artisan storage:link

 

 

 

반응형

'BackEND > Laravel Project' 카테고리의 다른 글

피드백만들기  (0) 2022.07.31
Create , Read, Update, Delete  (0) 2022.07.31
테이블, 컨트롤, 뷰, 모델 이해  (0) 2022.07.31