标签: lumen

刚刚安装了Lumen并得到了NotFoundHttpException

我正在寻找解决方案...它变得非常令人沮丧.在Laravel彻底安装Lumen之后,我根本无法访问"/"路线.当我尝试时,它会抛出一个错误:

NotFoundHttpException in RoutesRequests.php line 443:

in RoutesRequests.php line 443
at Application->handleDispatcherResponse(array('0')) in RoutesRequests.php line 380
at Application->Laravel\Lumen\Concerns\{closure}() in RoutesRequests.php line 629
at Application->sendThroughPipeline(array(), object(Closure)) in RoutesRequests.php line 382
at Application->dispatch(null) in RoutesRequests.php line 327
at Application->run() in index.php line 28
Run Code Online (Sandbox Code Playgroud)

php laravel lumen lumen-5.2 lumen-routing

14
推荐指数
1
解决办法
1万
查看次数

Laravel Lumen确保JSON响应

我是Laravel和Lumen的新手.我想确保我总是只获得一个JSON对象作为输出.我怎么能在流明这样做?

我可以使用JSON响应response()->json($response);.但是当发生错误时,API会给我text/html错误.但我只想application/json回复.

提前致谢.

php api json laravel lumen

14
推荐指数
3
解决办法
1万
查看次数

Lumen和MongoDB?

是否有可能将mongodb连接设置包含在流明框架中.从我看到的内容中,config/database.php在内部包中加载.有没有办法以某种方式扩展它以包括mongodb连接设置?

mongodb laravel lumen

13
推荐指数
2
解决办法
9889
查看次数

如何在新安装中指定Lumen(或Laravel)版本?

我想在一个新项目上安装一个特定版本的Laravel Lumen(5.1而不是最新的一个5.2).

从文档:

lumen new blog
Run Code Online (Sandbox Code Playgroud)

要么 :

composer create-project laravel/lumen --prefer-dist
Run Code Online (Sandbox Code Playgroud)

不起作用:它安装最新的.

laravel lumen

13
推荐指数
1
解决办法
7387
查看次数

Laravel Model Factory无需连接数据库

我想在一些PHPUnit测试中使用Laravel的Model Factory.我唯一想做的就是创建一个Model实例而不将其保存到数据库中.

为什么Model Factory需要连接到数据库?这些测试必须传递CI环境而不配置数据库.

当我手动创建模型时new App\Model($dataArray),测试通过并且不需要连接.

我在其他地方使用Model Factory,所以我想在测试中重用它,以避免代码重复.

我正在使用MongoDB和jenssegers/laravel-mongodb库,但我猜它无论如何 - 在纯粹的Eloquent和MySQL数据库中,问题都是一样的.

没有数据库的测试:

class ModelTransformerTest extends TestCase
{
    public function testTransformMinimalModelData()
    {
        $data = [
            '_id' => $faker->md5,
            'email' => $faker->email,
        ];

        $model = new App\Model($data);
        // […];
    }
}
Run Code Online (Sandbox Code Playgroud)

我的模型工厂

$factory->defineAs(Model::class, 'base', function ($faker) {
    return [
        '_id' => $faker->md5,
        'email' => $faker->email,
    ];
});
Run Code Online (Sandbox Code Playgroud)

需要数据库连接的测试:

class ModelTransformerTest extends TestCase
{
    public function testTransformMinimalModelData()
    {
        $model = factory(App\Model::class, 'base')->make();
        // […];
    }
}
Run Code Online (Sandbox Code Playgroud)

完整堆栈跟踪:

Error: Class …
Run Code Online (Sandbox Code Playgroud)

php testing unit-testing laravel lumen

13
推荐指数
1
解决办法
1655
查看次数

方法Illuminate\Auth\RequestGuard :: attempt不存在

我是laravel和流明的新手.我在流明5.6中用oauth2.0创建了一个登录api,我已经安装了护照并生成了令牌.下面是我的登录控制器功能,它工作正常.它返回令牌.

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Route;
//use Illuminate\Support\Facades\DB;
use App\User;
use Auth;

public function login(Request $request)
        {
            global $app;    
            $proxy = Request::create(
                '/oauth/token',
                'post',
                [
                    'grant_type'    =>  env('API_GRAND_TYPE'),
                    'client_id'     =>  env('API_CLIENT_ID'),
                    'client_secret' =>  env('API_CLIENT_SECRET'),
                    'username'      =>  $request->username,
                    'password'      =>  $request->password,
                ]

            );
            return $app->dispatch($proxy);
        }  
Run Code Online (Sandbox Code Playgroud)

由于我必须检查除用户名和密码之外的用​​户状态,我需要先检查用户凭据.所以我喜欢这个.

public function login(Request $request)
{

    $credentials = $request->only('username', 'password');

    if (Auth::attempt($credentials)) {
        return ['result' => 'ok'];
    }

    return ['result' => 'not ok'];
}

Here i am getting this error.
Method Illuminate\Auth\RequestGuard::attempt …
Run Code Online (Sandbox Code Playgroud)

login lumen

13
推荐指数
1
解决办法
1万
查看次数

流明框架路由不工作

我第一次使用Lumen框架,/到HomeController 的路由不起作用.

这是我的route.php:

$app->get('/', 'HomeController@index');
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

[2015-04-17 07:03:41] lumen.ERROR: exception 'ReflectionException' with message 'Class HomeController does not exist' in /Users/refear99/Web/qingsongchou_api/vendor/illuminate/container/Container.php:776

Stack trace:
#0 /Users/refear99/Web/qingsongchou_api/vendor/illuminate/container/Container.php(776): ReflectionClass->__construct('HomeController')
#1 /Users/refear99/Web/qingsongchou_api/vendor/illuminate/container/Container.php(656): Illuminate\Container\Container->build('HomeController', Array)
#2 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(358): Illuminate\Container\Container->make('HomeController', Array)
#3 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1184): Laravel\Lumen\Application->make('HomeController')
#4 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1157): Laravel\Lumen\Application->callControllerAction(Array)
#5 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1142): Laravel\Lumen\Application->callActionOnArrayBasedRoute(Array)
#6 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1120): Laravel\Lumen\Application->handleArrayBasedFoundRoute(Array)
#7 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1058): Laravel\Lumen\Application->handleFoundRoute(Array)
#8 /Users/refear99/Web/qingsongchou_api/vendor/laravel/lumen-framework/src/Application.php(1006): Laravel\Lumen\Application->dispatch(NULL)
#9 /Users/refear99/Web/qingsongchou_api/public/index.php(28): Laravel\Lumen\Application->run()
#10 {main}  
Run Code Online (Sandbox Code Playgroud)

这是/ app/Http/Controllers /中的HomeController.php

<?php namespace App\Http\Controllers;

class HomeController extends Controller {

public function index()
{
    echo 123;
}

}
Run Code Online (Sandbox Code Playgroud)

问题是什么?

php laravel lumen

12
推荐指数
1
解决办法
2万
查看次数

流明简单路由请求不起作用

我在我的网络服务器上安装了流明,但我遇到了路由问题

// http://12.345.678.910/
$app->get('/', function() use ($app) {
    return "This works";
});
Run Code Online (Sandbox Code Playgroud)

但在第二种情况下,他无法找到目录

// http://12.345.678.910/api
$app->get('/api', function() use ($app) {
    return "This dont work";
});
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,我得到标准的404错误.

The requested URL /api was not found on this server.
Run Code Online (Sandbox Code Playgroud)

我使用Apache,Ubuntu,PHP 5.5和Lumen

laravel lumen

12
推荐指数
1
解决办法
9260
查看次数

为什么不遵守gzip最小长度指令?

如果我理解正确,最好不要使用gzip小资源,因为它们实际上可能会变得更大,同时仍然会在CPU上遇到性能损失.所以使用gzip_min_length指令是一个明显的解决方案.但是,在运行REST API的服务器上尝试此操作时,我正在进行此操作似乎不起作用.当我收到空的json响应或非常小的响应时,Content-Encoding标头仍然存在并且正在读取"gzip".

HTTP响应标头

我的问题是为什么这个设置不被NginX尊重,我该怎么做才能修复它?

API建立在Lumen微框架上.

我已经在我的nginx.conf中附加了我正在使用的Gzip设置:

  # Compression

  # Enable Gzip compressed.
  gzip on;

  # Enable compression both for HTTP/1.0 and HTTP/1.1.
  gzip_http_version  1.1;

  # Compression level (1-9).
  # 5 is a perfect compromise between size and cpu usage, offering about
  # 75% reduction for most ascii files (almost identical to level 9).
  gzip_comp_level    5;

  # Don't compress anything that's already small and unlikely to shrink much
  # if at all (the default is 20 bytes, which is …
Run Code Online (Sandbox Code Playgroud)

gzip nginx httpresponse server lumen

12
推荐指数
1
解决办法
7620
查看次数

Lumen中的任务调度是否像Laravel一样工作?

您可以在Laravel的最新文档中看到任务调度,但Lumen的文档没有提到这一点.但是,看起来Lumen的Console Kernel文件就像Laravel一样有一个调度方法.调度在两者中是否相同,或者在Lumen中进行调度的注意事项是什么?

scheduled-tasks laravel lumen laravel-5.1

12
推荐指数
1
解决办法
7578
查看次数