gpt4 book ai didi

php - Laravel 扩展类

转载 作者:行者123 更新时间:2023-12-04 16:52:48 24 4
gpt4 key购买 nike

在 Laravel 3 中扩展类还需要其他步骤吗?

我创建了 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');
}

}

但由于某种原因, my_test()函数,或修改后的 json()功能有效。

在我的 Controller 中,我执行以下操作:
Response::my_test();
// or
$response['error']['type'] = 'existing_user';
Response::json($response);

没有工作,我错过了什么?

最佳答案

您应该先添加一个命名空间 - 像这样:

文件: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');
}
}

然后在 config/application.php 中,您需要更改别名
 'Response'     => 'Extended\\Response',

然后在 start.php
Autoloader::map(array(
'Extended\\Response' => APP_PATH.'libraries/extended/response.php',
));

关于php - Laravel 扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com