我一直在进行自定义多重身份验证并收到以下错误:
类 App\Http\Controllers\ManagerLoginController 不存在
我一直在寻找此错误,但找不到解决方案。我已将控制器的屏幕截图附加到目录中。
ManagerLoginController.php
class ManagerLoginController extends Controller
{
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function showManagerLoginForm()
{
return view('auth.login', ['url' => 'manager']);
}
public function managerLogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:8'
]);
if (Auth::guard('manager')->attempt(['email' => $request->email, 'password' => $request->password],
$request->get('remember'))) {
return redirect()->intended('login/manager');
}
return back()->withInput($request->only('email', 'remember'));
}
}
Run Code Online (Sandbox Code Playgroud)
网页.php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/manager/login', 'ManagerLoginController@showManagerLoginForm')->name('manager.login');
Route::post('/manager/login', 'ManagerLoginController@managerLogin');
Route::get('/manager/register', 'ManagerRegisterController@showManagerRegisterForm')->name('manager.register');
Route::post('/manager/register', 'ManagerRegisterController@createManager');
Route::get('/manager', 'ManagersController@redirectAuthenticatedManager');
Run Code Online (Sandbox Code Playgroud) 我正在尝试安装maatwebsite/excel;但是,我无法让它工作。
我尝试删除composer.lock文件并运行:
composer install
composer update
Run Code Online (Sandbox Code Playgroud)
我也试过:
composer require maatwebsite/excel --update-with-dependencies
Run Code Online (Sandbox Code Playgroud)
两种方法都不奏效。
我收到的错误是:
Problem 1
- maatwebsite/excel 3.1.10 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.11 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.12 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.13 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
. …Run Code Online (Sandbox Code Playgroud) 我正在从表中查询大型数据集,然后迭代循环以创建 json 文件。
$user = App\User::all();
foreach($user as $val){
// logic goes here for creating the json file
}
Run Code Online (Sandbox Code Playgroud)
现在我面临的问题是,当迭代循环时,它正在消耗内存,并且我收到错误“允许的内存大小已耗尽”。而且服务器的 CPU 使用率变得如此之高。我的问题是我应该如何使用 laravel 惰性集合来解决这个问题。我已经浏览了官方文档但找不到方法。
我有一个 artisan 命令,它触发一个名为PasswordResetJob的作业,该作业在调用存储库类OrgRepository中的ForcePasswordReset方法时进行迭代,该方法更新用户的表。整个过程运行良好。
现在,我尝试编写一个 Laravel 测试来模拟OrgRepository类,并断言强制密码重置方法至少被调用一次,根据我提供给测试的条件,情况应该是这样。在测试中,我调用artisan命令来解雇工作;(我正在使用同步队列进行测试)当作业被调用并且用户的表被更新时,这工作得很好,因为我可以直接查看数据库更新。但是,测试失败并出现错误:Mockery\Exception\InvalidCountException:Mockery_2_Repositories_OrgRepository 中的方法forcePasswordReset() 应该至少调用 1 次,但调用了 0 次。
测试中的工匠调用是:
Artisan::call('shisiah:implement-org-password-reset');
Run Code Online (Sandbox Code Playgroud)
我之前和模拟初始化之后都尝试过进行 artisan 调用,但仍然遇到相同的错误。这是测试中的模拟初始化
$this->spy(OrgRepository::class, function ($mock) {
$mock->shouldHaveReceived('forcePasswordReset');
});
Run Code Online (Sandbox Code Playgroud)
我缺少什么?我已经阅读了文档并通过谷歌搜索了几个小时。如果您需要任何其他信息来帮助,请告诉我。我使用的是Laravel 6.0 版本
我将OrgRepository类传递给作业类的handle方法,如下所示:
public function handle(OrgRepository $repository)
{
//get orgs
$orgs = Org::where('status', true)->get();
foreach ($orgs as $org){
$repository->forcePasswordReset($org);
}
}
Run Code Online (Sandbox Code Playgroud) 我注意到有一个 cache.psr6 容器别名,但如果我使用:
new Cache
Run Code Online (Sandbox Code Playgroud)
作为实例,我收到了 getItems 不可用的错误,我认为这意味着我没有传递符合 PSR-6 的缓存实例。如果以任何方式更改配置,我将使用 Redis。
是否有额外的配置需要完成,或者我是否以错误的方式传递了这个?
我使用的库是:https : //github.com/AlexaCRM/dynamics-webapi-toolkit/wiki/Tutorial
教程指出:
您可以选择提供符合 PSR-6 的缓存适配器。
$settings->cachePool = $cacheAdapter;
我的问题是,什么是 $cacheAdapter?
我使用 Laravel 6.x,以下是我的响应 JSON。
{
"data": [
{
"id": 1,
"name": "quam",
"parent_id": 0
},
{
"id": 2,
"name": "quia",
"parent_id": 1
},
{
"id": 3,
"name": "beatae",
"parent_id": 1
},
{
"id": 4,
"name": "aut",
"parent_id": 2
},
{
"id": 5,
"name": "provident",
"parent_id": 0
},
{
"id": 6,
"name": "voluptate",
"parent_id": 0
},
{
"id": 7,
"name": "vel",
"parent_id": 2
},
{
"id": 8,
"name": "sed",
"parent_id": 3
},
{
"id": 9,
"name": "voluptates",
"parent_id": 0
},
{ …Run Code Online (Sandbox Code Playgroud) 我用这样的形式发送文件
\n\n<input type="file" class="form-control" name="images[]" multiple enctype="multipart/form-data"/>\nRun Code Online (Sandbox Code Playgroud)\n\n但在控制器上$request->all()我只得到文件名
"images" => array:1 [\xe2\x96\xbc\n 0 => "just-before-hit.png"\n ]\nRun Code Online (Sandbox Code Playgroud)\n\n如何获取文件对象来存储它?
\n如何将参数传递给 Laravel Eloquent API 资源构造函数并使其返回响应时的条件数据?
我尝试过的:
控制器
$user = User::find(1);
return new UserResource($user, $shortData = true);
Run Code Online (Sandbox Code Playgroud)
API资源:
public function toArray($request, $shortData)
{
if($short) {
return $shortData;
} else {
return $fullData;
}
}
Run Code Online (Sandbox Code Playgroud) 我想在 Heroku 中插入数据,但我无法执行此操作,因为它的错误是“Dataclip Error”
ERROR: cannot execute INSERT in a read-only transaction"
Run Code Online (Sandbox Code Playgroud)
如您所知,Redis 可以有多个数据库,在我的 Laravel 设置中,我定义了其中 3 个并至少使用 2 个
'0' (default)
'1' (cache)
'2' (queue)
Run Code Online (Sandbox Code Playgroud)
这就是我在config/database.php中设置的内容
此外,由于某些需要,我使用flushall() 以下方法清除所有缓存:
@Cache::flush();
@Redis::flushall();
Run Code Online (Sandbox Code Playgroud)
但是,它也会清除队列作业,这不是我想要的。那么有没有办法只刷新数据库0和数据库1而不刷新数据库2呢?