본문 바로가기

php 헛다리/Laravel9 헛다리

라라벨9 컨트롤러 생성 - controller

728x90

 

 

라라벨9 컨트롤러 생성 - controller

/app/Http/Controllers 경로에 컨트롤러가 생성된다.

컨트롤러 생성 명령어

php artisan make:controller [컨트롤러명]Controller

예시

#>php artisan make:controller MemoController

/app/Http/Controllers/MemoController.php 가 생성된다.

 

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class MemoController extends Controller
{
    //
}
​

 

** 그냥 파일생성으로 진행해도 문제 없다.

 


 

 

컨트롤러에서 model 로드 방법

 

<?php

namespace App\Http\Controllers;

use App\Models\User; // User 모델
use Illuminate\Http\Request;



class MemoController extends Controller
{
    //


    // ===============================
    // === 생성자에서 모델 로드
    protected $user; 

    public function __construct(User $user)
    {
        $this->user = $user;
    }
    // === 생성자에서 모델 로드
    // ===============================


    public function index()
    {
        // $this->user는 이제 User 모델의 인스턴스
        $users = $this->user->all();  // 사용 예시

        return view('users.index', compact('users'));
    }


}




2개 이상의 모델 로드 방법

<?php

namespace App\Http\Controllers;

use App\Models\User;   // user 모델
use App\Models\Memo;   // memo 모델
use Illuminate\Http\Request;

class MemoController extends Controller
{

    // ===============================
    // === 생성자에서 모델 로드
    protected $user; 
    protected $memo;

    public function __construct(User $user, Memo $memo)
    {
        $this->user = $user;
        $this->memo = $memo;
    }
    // === 생성자에서 모델 로드
    // ===============================


    public function index()
    {
        $users = $this->user->all();
        $memos = $this->memo->all();

        return view('users.index', compact('users', 'memos'));
    }
}

 

 

컨트롤럴가 동작하려면 route 설정을 해야한다.

route 는 다음글에서

728x90