이전 글에서는 사용자의 요청과 응답 로직을 라우팅에 넣었지만 실제 상황에서는 이전 코드만큼 간단하지도 않습니다.
대부분의 경우 사용자 요청 작업은 컨트롤러에서 처리됩니다(비즈니스 처리 로직은 포함되지 않음).
모든 Laravel 컨트롤러는 app/Http/Controllers 디렉터리에 있습니다.
1 간단한 컨트롤러 만들기
1.1 매개변수 없는 컨트롤러
app/Http/Controllers 디렉터리에 다음 코드를 사용하여 HomeController.php라는 새 파일을 만듭니다.
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw() { return view('hw'); } }
<html> <body> Hello World! </body> </html>
<?php Route::get('/', function () { return view('welcome'); }); Route::get('/hw', 'HomeController@hw');
1.2 Controller가 View에 매개변수를 전달합니다
Controller가 View에 매개변수를 전달해야 할 경우 다음과 같이 컨트롤러:
public function hw() { return view('hw',['name'=>'CBW']); }
<html> <body> [<?php echo $name; ?>],您好! </body> </html>
1.3 컨트롤러가 경로에서 매개변수를 읽어 전달합니다.
컨트롤러가 경로에서 매개변수를 가져와야 하는 경우 다음과 같이 수정합니다. 위에 표시된 경로 코드 조각:
Route::get('/hw/{name}', 'HomeController@hw');
public function hw($name) { return view('hw',['name'=>$name]); }
2 라우터 심층
2.1 컨트롤러 및 네임스페이스
일반적으로 애플리케이션 시스템은 여러 하위 프로젝트로 구성됩니다. 예를 들어 웹사이트에는 프론트엔드와 백엔드가 있습니다. 프론트엔드에는 읽기용 뉴스 기능이 있고 백엔드에는 관리용 뉴스 기능이 있습니다.
이제 일반 사용자 모듈(방문)과 시스템 관리 모듈(관리)의 두 가지 모듈을 포함하는 웹 시스템을 개발한다고 가정합니다.
A. app/Http/Contollers 디렉토리에 두 개의 모듈 컨트롤러 하위 디렉토리를 생성합니다.
B resources/views 아래에 두 개의 하위 디렉토리를 생성합니다. Visit: Home;
C. 위의 예에서 생성된 HomeController를 이전 단계에서 생성된 Visit로 이동합니다. 수정된 코드는 다음과 같습니다:
<?php namespace App\Http\Controllers\Visit; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw($name) { return view('Visit.Home.hw',['name'=>$name]); } }
D.routes.php 코드 세그먼트를 다음과 같이 수정합니다:
Route::get('/hw/{name}', 'Visit\HomeController@hw');
2.2 컨트롤러 미들웨어
이전 기사에서 미들웨어의 사용을 시연했습니다. 위의 예를 검토해 보겠습니다.
Route::get('/user/{age}', ['middleware' => 'my', function ($age) { return '用户年龄:'.$age; }]);
class UserController extends Controller { public function __construct() { $this->middleware('my'); } }
이 외에도 암시적 컨트롤러, RESTful, 경로 캐시 등이 있는데 나중에 추가될 예정입니다.
저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.
위 내용은 Laravel 514 Bootstrap 334 참고 4: Laravel 컨트롤러에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.