控制器是php框架中的核心部分,控制器是mvc框架中的c(controller),控制器的任务是接受数据、处理数据、返回用户。

在laravel框架中控制器位于app/http/Controllers目录下。控制器可以使用命名空间,如下所示:

namespace App\Http\sys;//sys系统模块  
namespace App\Http\biz;//biz业务模块
根据自己开发的系统可以自定义自己的命令空间。

接下来介绍laravel是如何创建控制器的。

创建laravel普通控制器

这里介绍一种命令行的方式创建控制器,其创建的是普通的控制器,命令如下:

php artisan make:controller IndexController 
Laravel 控制器介绍

如上所示:我们创建了一个Indexcontroller控制器。当然您同样可以手动创建Laravel的控制器,它的目录位于app/http/Controllers。

代码如下:

<?php

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

class IndexController extends Controller
{
    
}

创建restful控制器

上面的代码没有增删改查方法,我们可以通过带有参数--resource的方法创建一个控制器,实际上就是restful接口形式的控制器。
php artisan make:controller --resource IndexController 
Laravel 控制器介绍

提示控制器文件已经存在,需要删除它重新创建。

Laravel 控制器介绍
现在,打开您的项目查看 IndexController 文件是否已创建。 该文件的路径将是\app\Http\Controllers。
上面的截图表示 IndexController 文件已成功创建。创建成功的控制器代码如下:

 <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

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

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * 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)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($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)
    {
        //
    }
}

上面生成的代码中,创建了带有rest方法的控制器,这样省去了我们开发中的一些工作量。

总结

通过laravel提供的命令可以简单的创建控制器,根据自己的需要是创建普通控制器还是restful接口形式的控制器由您来决定。