我正在寻找解决方案...它变得非常令人沮丧.在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) 我是Laravel和Lumen的新手.我想确保我总是只获得一个JSON对象作为输出.我怎么能在流明这样做?
我可以使用JSON响应response()->json($response);.但是当发生错误时,API会给我text/html错误.但我只想application/json回复.
提前致谢.
是否有可能将mongodb连接设置包含在流明框架中.从我看到的内容中,config/database.php在内部包中加载.有没有办法以某种方式扩展它以包括mongodb连接设置?
我想在一个新项目上安装一个特定版本的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)
不起作用:它安装最新的.
我想在一些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) 我是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) 我第一次使用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)
问题是什么?
我在我的网络服务器上安装了流明,但我遇到了路由问题
// 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
如果我理解正确,最好不要使用gzip小资源,因为它们实际上可能会变得更大,同时仍然会在CPU上遇到性能损失.所以使用gzip_min_length指令是一个明显的解决方案.但是,在运行REST API的服务器上尝试此操作时,我正在进行此操作似乎不起作用.当我收到空的json响应或非常小的响应时,Content-Encoding标头仍然存在并且正在读取"gzip".
我的问题是为什么这个设置不被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) 您可以在Laravel的最新文档中看到任务调度,但Lumen的文档没有提到这一点.但是,看起来Lumen的Console Kernel文件就像Laravel一样有一个调度方法.调度在两者中是否相同,或者在Lumen中进行调度的注意事项是什么?
lumen ×10
laravel ×8
php ×4
api ×1
gzip ×1
httpresponse ×1
json ×1
laravel-5.1 ×1
login ×1
lumen-5.2 ×1
mongodb ×1
nginx ×1
server ×1
testing ×1
unit-testing ×1