如何使用 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 及以下版本中,默认情况下 make: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 list”中隐藏默认的 artisan 命令?
在输入'php artisan storage:link'命令后,如何使用Laravel链接存储文件夹在Heroku上显示图像?