如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器

Posted

技术标签:

【中文标题】如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器【英文标题】:How to create a RESTful Resource Controller in Laravel 5.2, using Artisan command (PHP) 【发布时间】:2016-04-13 03:58:33 【问题描述】:

我正在使用 Laravel 5,我想知道如何使用 Artisan 命令 (php) 生成具有所有预定义方法的 RESTful 资源控制器。

当我运行php artisan make:controller LessonsController 时,它会创建一个控制器,没有如下所示的方法:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class LessonsController extends Controller




我想要创建的是一个完整的 Laravel RESTful 资源控制器,其中包含所有预定义的方法,如:index(), create(), store(), show(), edit(), update()destroy()

我怎样才能做到这一点?

【问题讨论】:

什么版本的 laravel 5? Laravel 框架版本 5.2.7 【参考方案1】:

对于具有您想要的所有方法的默认控制器。 php artisan make:controller LessonsController

如果你想要没有方法的普通控制器 php artisan make:controller --plain LessonsController

【讨论】:

老兄,这不适用于 Laravel 5。如果你这样做 php artisan make:controller Xyz 它会给你一个普通的控制器 它在 Laravel 5 中不起作用。我猜你正在使用 Laravel 4。【参考方案2】:

尝试获取有关命令的帮助

php artisan help make:controller

如果您在帮助选项中看到 --resource 标志,则您可能使用的是 5.2 或更新版本,并且可以将该标志添加到命令中以获取资源控制器。

php artisan make:controller --resource SomeResourceController

对于 Laravel 5.0 和 5.1,make:controller 命令将默认创建一个资源控制器,--plain 选项将创建一个普通控制器。

Laravel 5.2 - Restful Resource Controllers - 默认纯文本

Laravel 5.1 - Restful Resource Controllers - 默认资源

Laravel 5.0 - Restful Resource Controllers - 默认资源

总结:从 Laravel 5.2 开始,make:controller artisan 命令将默认创建一个普通的控制器。

【讨论】:

这个工作php artisan make:controller --resource SomeResourceController.....谢谢伙计 @Vicky 是的,因为您使用的是 5.2。 不要忘记将 routes/web.php 中的控制器调用为 use App\Http\Controllers\SomeResourceController; 或将引发 class not found error【参考方案3】:

php artisan make:controller "NameOfController" - 将使用所有方法创建控制器

php artisan make:controller "NameOfController" --plain This will create controller with no methods.

最好的问候,我正在使用 laravel 5.0

【讨论】:

vicky 确实如此,您只是使用了不同版本的 laravel 5,应该在您的问题中注明。 我知道在第 4 版中它可以正常工作。但它不适用于 5.2.7 版【参考方案4】:

所以你使用的是 Laravel 5.2,所以要让具有 RESTful 方法的控制器发出命令

php artisan make:controller --resource NAME_OF_CONTROLLER

在 Laravel 5.1 及以下版本中,默认情况下 ma​​ke:controller 命令用于生成具有所有必需方法的控制器,例如“索引、创建、存储、显示、编辑、更新、销毁”。而对于 5.1 及以下版本,为了让空白控制器文件没有任何方法,我们过去使用 '--plain' 参数作为

php artisan make:controller --plain NAME_OF_CONTROLLER

但在 Laravel 5.2 中,默认情况下,artisan 命令将创建裸控制器文件而无需任何 RESTful 方法。

由于 Laravel 5.2 有很多变化,最好使用 'artisan help' 命令,如下所示

php artisan help make:controller

这样,我们就实现了--resource的引入

请参考 Laravel 文档Laravel HTTP Controllers - Artisan Command

建议:由于这是5.2的变化,所以也可以编辑帖子标题。

【讨论】:

【参考方案5】:
php artisan make:controller ControllerName --resource

【讨论】:

【参考方案6】:

对于Laravel 5.2

php artisan make:controller NameofController --resource
// It will create the controller with all methods.

如果Laravel < 5.2

php artisan make:controller NameofController
// It will create the controller with all methods.

php artisan make:controller NameofController --plain
// It will create the controller without any method.

【讨论】:

【参考方案7】:

php artisan make:controller ItemController --resource

【讨论】:

以上是关于如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器的主要内容,如果未能解决你的问题,请参考以下文章

什么是最大值php artisan命令的执行时间

如何从命令的“php artisan list”中隐藏默认的 artisan 命令?

如何在代码 Laravel 中使用 Artisan 命令?

如何使用 php artisan serve 设置域名

在输入'php artisan storage:link'命令后,如何使用Laravel链接存储文件夹在Heroku上显示图像?

如何解决 php artisan key 生成错误?