dpfl37651 2013-01-31 15:17
浏览 74
已采纳

Laravel扩展课程

Are there any other steps required to extend a class in Laravel 3?

I created application/libraries/response.php:

class Response extends Laravel\Response {

    public static function json($data, $status = 200, $headers = array(), $json_options = 0)
    {
        $headers['Content-Type'] = 'application/json; charset=utf-8';

        if(isset($data['error']))
        {
            $status = 400;
        }

        dd($data);

        return new static(json_encode($data, $json_options), $status, $headers);
    }

    public static function my_test()
    {
        return var_dump('expression');
    }

}

But for some reason, neither the my_test() function, or the modified json() function works.

In my controller, I do the following:

Response::my_test();
// or
$response['error']['type']    = 'existing_user';
Response::json($response);

And none work, what am I missing?

  • 写回答

2条回答 默认 最新

  • douyan1903 2013-01-31 15:26
    关注

    You should add a name space first - like this:

    file: application/libraries/extended/response.php

    <?php namespace Extended;
    
    class Response extends \Laravel\Response {
    
      public static function json($data, $status = 200, $headers = array(), $json_options = 0)
      {
        $headers['Content-Type'] = 'application/json; charset=utf-8';
    
        if(isset($data['error']))
        {
            $status = 400;
        }
    
        dd($data);
    
        return new static(json_encode($data, $json_options), $status, $headers);
      }
    
      public static function my_test()
      {
        return var_dump('expression');
      }
    }
    

    Then inside config/application.php you need to change the alias

     'Response'     => 'Extended\\Response',
    

    Then in start.php

    Autoloader::map(array(
        'Extended\\Response' => APP_PATH.'libraries/extended/response.php',
    ));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据