我有一个大问题.我使用Lumen框架在localhost中处理应用程序.我的工作环境是在Wamp(Windows)上.
Lumen要求root位于public文件夹中.
为此,我有一个像这样的配置文件:
NameVirtualHost name.local
<VirtualHost name.local>
DocumentRoot C:/wamp/www/name/public
ServerName name.local
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
所以,如果我把地址name.local/放在我的浏览器中,我就可以到达索引页面.
现在,我需要将所有工作都放在FTP中.在那里,我有一个异常错误,这是正常的,因为我的根不是public文件夹.
更新:我找到答案,请看下面.
我正在使用Lumen创建RESTful API,并希望为安全性添加HTTP基本身份验证.
在routes.php文件中,它auth.basic为每个路径设置中间值:
$app->get('profile', ['middleware' => 'auth.basic', function() {
// logic here
}]);
Run Code Online (Sandbox Code Playgroud)
现在,当我访问时,我http://example-api.local/profile现在提示使用HTTP基本身份验证,这很好.但是当我尝试登录时,我收到以下错误消息:Fatal error: Class '\App\User' not found in C:\..\vendor\illuminate\auth\EloquentUserProvider.php on line 126
我不希望在数据库上完成用户验证,因为我只有一个凭证,所以很可能它只是获取变量的用户名和密码并从那里验证它.
顺便说一句,我通过这个laracast教程引用它.虽然它是一个Laravel应用程序教程,但我在Lumen应用程序上实现它.
在Laravel中,我可以这样做来Artisan从路线调用命令:
Route::get('/foo', function () {
$exitCode = Artisan::call('email:send', [
'user' => 1, '--queue' => 'default'
]);
//
});
Run Code Online (Sandbox Code Playgroud)
但我无法在Lumen框架中找到一种明显的方法.抛出的错误是:
Fatal error: Class 'App\Http\Controllers\Artisan' not found
Run Code Online (Sandbox Code Playgroud) 我没有找到关于如何在Lumen 5.2中设置默认时区的任何相关信息(仅限技巧).有没有干净的方法来做到这一点?
是否可以从流明/层级5.2中的现有数据库生成迁移模式?有没有包裹?
我将流明连接到magento数据库,现在我需要使用eloquent.我没有时间为每张桌子制作迁移模型.
当尝试运行artisan命令时,我收到以下错误
[Symfony\Component\Debug\Exception\FatalThrowableError]
Class 'Memcached' not found
Run Code Online (Sandbox Code Playgroud)
我最近一直在研究另一个使用Lumen 5.3的项目,并且运行工匠命令没有问题.两个项目都在同一个虚拟盒子上,除了Lumen版本之外,服务器设置没有区别.
我已经检查过Memcached正在运行并且没有问题.
我已经尝试过composer dump-autoload,删除了vendor文件夹并重新安装,但这些都没有任何区别.
如果可能的话,我宁愿不回到5.3.
有没有办法解决这个问题?
我正在创建一个自定义守卫,我需要访问Request对象才能获得http标头.我已经尝试了request()但它在流明中是未定义的.
如何在控制器类之外访问Request对象?
注意:不是控制器外部的Laravel访问请求对象的副本
在标准作业中,我使用此方法来分派作业:
dispatch(new PurchaseJob($trxId, $method, $params));
Run Code Online (Sandbox Code Playgroud)
接下来我想发送另一个Job来发送电子邮件,但我想把它拆分到另一个单独的队列.根据我在Laravel 5.5文档中的内容,我可以这样做:
SendEmailJob::dispatch($userEmail)->onQueue('send_email');
Run Code Online (Sandbox Code Playgroud)
但它似乎不适用于Lumen 5.5.
我可以做些什么来完成这项工作,或者是否有任何其他未在文档中说明的方法?
我遇到了一个问题,我已经工作了几天,找不到解决方案。我使用Lumen创建了一个API,并使用ReactJS创建了一个前端。这对于GET请求来说一切正常,但是在我发送POST请求时失败。由于某些奇怪的原因,当我与Postman发送请求时,请求可以正常工作。现在一些代码!
首先,发送请求的JS脚本:
import moment from 'moment';
import React, {Component} from 'react';
import { Modal, Form, Button, Input, DatePicker, Select, message } from 'antd';
const {RangePicker} = DatePicker;
const FormItem = Form.Item;
const Option = Select.Option;
const api_url = 'api/v1/';
class NewEventForm extends React.Component {
constructor(props) {
super(props);
this.state = {
confirmLoading: false,
categories: []
};
this.onCreate = this.onCreate.bind(this);
this.onCancel = this.onCancel.bind(this);
}
componentDidMount() {
fetch(api_url + 'category')
.then(results => {
return results.json();
}).then(data => {
let categories = data.map((cat) => …Run Code Online (Sandbox Code Playgroud)我期待在流明路由,它似乎并没有被正确地工作,我不能工作,如果它是一个问题,或者我的理解.
$router->get('{adaptor}[/{id}]', ['uses' => 'MyController@readAction']);
Run Code Online (Sandbox Code Playgroud)
这种方式有效,但我更喜欢使用前缀来分组我的所有路由:
$router->group(['prefix' => '{adaptor}'], function () use ($router) {
$router->get('[/{id}]', ['uses' => 'MyController@readAction']);
// CRUD routes to be added here
});
Run Code Online (Sandbox Code Playgroud)
如果我去,/acme我得到MethodNotAllowed异常,但如果我添加/acme/1它工作正常.前缀是否需要另一个路由项才能工作?