>PHP 프레임워크 >Laravel >Laravel의 컨트롤러

Laravel의 컨트롤러

灭绝师太
灭绝师太원래의
2021-12-06 15:16:232202검색

Laravel의 컨트롤러

라우팅 파일에서 클로저 형식으로 정의된 모든 요청 처리 로직을 대체하기 위해 컨트롤 클래스를 사용하여 이러한 동작을 구성하려는 경우 컨트롤러는 관련 요청 처리 로직을 별도의 클래스로 구성할 수 있습니다. 컨트롤러는 app/Http/Controllers 디렉터리에 저장됩니다.

1. 간단하게 컨트롤러 만들기

//使用php artisan 命令,创建好后会自动加载命名空间,自动基础控制器基类
php artisan make:controller [控制器路径/]控制器名称

2. 컨트롤러 분류 ​​

1. 라우팅에 사용되는 기본 컨트롤러

//app/http/controller/定义UserController
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class UserController extends Controller
{
    /**
     * 显示指定用户的简介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function show($id)
    {
        .......
    }
}

:

Route::get('user/{id}', [UserController::class, 'show']);

2. 단일 동작 컨트롤러

//使用命令行方式创建单行为控制器
php artisan make:controller	GetName --invokable
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;

class GetName extends Controller
{
    /**
     * 显示指定用户的简介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function __invoke($id)
    {
        .........
    }
}

라우팅에 사용됨:

Route::get('user/{id}', GetName::class)

3. 리소스 컨트롤러

//使用命令行方式创建资源控制器
php artisan make:controller UserController --reosurce
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Category;
use App\Models\Good;
use App\Transformers\GoodTransformer;
use Illuminate\Http\Request;

class GoodController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

라우팅에 사용됨:

//第二参数为选填,例如当不需要destory()方法时,即可填入
Route::resource(&#39;goods&#39;,\App\Http\Controllers\Admin\GoodController::class,[
      &#39;except&#39; => &#39;destroy&#39;
]);
Route::resource(&#39;goods&#39;,\App\Http\Controllers\Admin\GoodController::class,[
      &#39;only&#39;  => [&#39;index&#39;,&#39;show&#39;,&#39;store&#39;,&#39;update&#39;]
]);

추천 관련 비디오 튜토리얼: Laravel 비디오 튜토리얼

위 내용은 Laravel의 컨트롤러의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.