• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel5.1 框架控制器基础用法实例分析
    POST TIME:2021-10-18 03:55

    本文实例讲述了Laravel5.1 框架控制器基础用法。分享给大家供大家参考,具体如下:

    为什么要使用控制器

    像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件特别庞大,其实我们应该把这些逻辑都抽到一个控制器里,路由分发后到控制器,控制器做相应的操作,比如关于后台的逻辑应该抽到AdminController中,Route文件只管分发。

    1 如何创建一个控制器

    1.1.1 创建RESTful控制器

    至于什么是RESTful?自行百度- -,我先简单说下,它里面自动填充了一些增删改查的方法。OK 我们在Artisan控制台创建:

    php artisan make:controller Admin\\HomeController
    
    

    然后 我们在 app/Http/Controller/Admin/ 下找到它:

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

    每个方法就是它的字面意思,至于怎么使用,我们来注册一条路由就清楚了。

    1.1.2 实现RESTful路由

    Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function (){
      Route::resource('/', 'HomeController');
    });
    
    

    resource是为RESTful风格的控制器注册多条路由的 我们可以在Artisan控制台看看:

    php artisan route:list

    如果没有什么错误的话,咱肯定会看见打印出来的表,表里面标明了每条路由的属性,如果你还是不太明白,那无所谓~咱以后的文章会频繁使用到这些内容哦。

    1.2.1 普通控制器

    在实际开发中啊 有时候咱不一定需要RESTful风格的服务器,我们只想要一个空的控制器来自己实现一些方法,可以这么生成:

    php artisan make:controller UserController --plain
    
    

    只要后面跟个plain标识符 就可以生成空的控制器啦。

    1.2.2 单条路由使用控制器

    上面是使用resource方法来对应控制器的动作了,像这种空的控制器咱怎么在路由中使用呢?

    /**
     * 控制器名@方法名 就可以了
     */
    Route::get('/user', 'UserController@index');
    /**
     * 这是在配置一些其他东西时的写法,因为要在数组中嘛,它对应的KEY是uses。
     */
    Route::get('/user', ['as' => 'showUser', 'uses' => 'UserController@index']);
    
    

    然后自行实现UserController的index方法就可以咯:

    class UserController extends Controller
    {
      public function index()
      {
        return '展示一些东西';
      }
    }
    
    

    1.3.1 其实还有另一种写法 隐式控制器

    这种路由我不太常用 先来看看语法吧:

    Route::controller('/user', 'UserController');
    
    

    首先 使用了controller来注册路由,第一个参数是路径没新鲜的,第二个参数是控制器 但是它没有跟着方法。因为它能自动根据路径相应到方法 看看下面控制器方法的实现。

    class UserController extends Controller
    {
      /**
       * 对应着 /user/ 路由 GET方式
       */
      public function getIndex()
      {
        return '展示一些东西~';
      }
      /**
       * 对应着 /user/show/{id} 路由 GET方式
       */
      public function getShow($id)
      {
        return '此用户ID为: '.$id;
      }
      /**
       * 对应着 /user/update/{id} 路由 POST方式
       */
      public function postUpdate($id, Requests\Request $request){
      }
    }
    
    

    这个控制器的方法开头都是HTTP请求的方式 最常用的就是GET 和 POST 后面跟的是方法名字,具体对应的路径在注释中写清楚了。

    如果你想给这些路由命名的话,后面可以跟一个数组来命名:

    Route::controller('/user', 'UserController',['getShow' => 'user.show']);
    

    这样就可以给对应的方法命名了,oh funk 大K真的不喜欢这种方式,也许是没明白这样写的真谛把。

    --今天关于控制器就先写这么多吧,具体逻辑实现咱还得学一些新的知识来结合使用,比如middleware啊和request还有blade模板引擎,但都不是很难~

    更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
    • Laravel 5框架学习之模型、控制器、视图基础流程
    • Laravel 5框架学习之路由、控制器和视图简介
    • Laravel框架路由和控制器的绑定操作方法
    • Laravel重定向,a链接跳转,控制器跳转示例
    • laravel通过a标签从视图向控制器实现传值
    • laravel框架模型、视图与控制器简单操作示例
    • Laravel框架控制器,视图及模型操作图文详解
    • laravel框架中控制器的创建和使用方法分析
    • Laravel框架控制器的middleware中间件用法分析
    • Laravel框架控制器的request与response用法示例
    上一篇:Laravel5.1框架路由分组用法实例分析
    下一篇:Laravel 5.1 框架Blade模板引擎用法实例分析
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信