Laravel的控制器类型有什么区别?

What is the difference between controller types of Laravel?

我在 resourceplain 控制器之间没有发现任何关于 definitions/differences 的信息。

它们有什么区别?

控制器类型的简单定义是:

Resource 控制器用于执行所有 CRUD 操作。
Plain 控制器用于任何手动执行的操作。

当您简单地使用 **php artisan:make controller ControllerName** 创建一个命令时,它会创建一个没有函数的文件。您可以自己添加功能。

但是,如果您使用资源创建控制器,那么它只会为您提供 CRUD 操作所需的所有功能。
使用普通控制器,您必须为每个功能创建路由。但是对于资源控制器,您只需添加 Route::resource('/routename','ControllerName'); 然后它将为您的 index、create、store、show、edit、update 和 delete 函数添加所有路由。 希望这个回答对你有帮助..

--普通

php artisan make:controller Mycontroller --plain

这最终会生成一个普通的构造函数,因为您传递的是参数 --plain。

可以使用以下语法从 routes.php 文件中调用您创建的控制器-

示例:- Route::get('base URI','Mycontroller@method');

一个基本的控制器代码看起来像这样app/Http/Controller/MyController.php:

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller
{
    //
}

资源控制器

Laravel 的资源路由为具有单行代码的控制器分配了经典的 "CRUD" 路由。这可以使用像这样的 make:controller 命令(Artisan 命令)快速创建

php artisan make:controller MyController --resource

资源控制器处理的操作:

Verb       URI                   Action          Route Name

GET        /photos               index           photos.index
GET        /photos/create        create          photos.create
POST       /photos               store           photos.store
GET        /photos/{photo}       show            photos.show
GET        /photos/{photo}/edit  edit            photos.edit
PUT/PATCH  /photos/{photo}       update          photos.update 
DELETE     /photos/{photo}       destroy         photos.destroy

更多详情:- Resource Controllers