我知道我不是第一个遇到这种问题的人。我已经阅读了关于 Stackoverflow 和其他来源的所有现有信息,但它无法解决我的问题,我总是会得到一个ReflectionException
Class App\Http\Middleware\xxx does not exist
.
<?php
namespace App\Http\Middleware\xxx;
use Closure;
class xxx
{
public function handle($request, Closure $next)
{
return $next($request);
}
}
Run Code Online (Sandbox Code Playgroud)
不开玩笑,这真的是我的课。我已将其重命名xxx
以避免输入错误。
我的所有路由信息都会通过该web
和admin
中间件:
Route::middleware(['web', 'admin'])->group(function() {
Run Code Online (Sandbox Code Playgroud)
这是我的/app/Http/Kernel.php
:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\xxx::class,
],
Run Code Online (Sandbox Code Playgroud)
xxx.php
,位置为App\Http\Middleware\
.我还尝试修改我的 composer.json:
"autoload": {
"classmap": [
"database/seeds",
"database/factories",
"App/Http/Middleware/xxx.php"
],
Run Code Online (Sandbox Code Playgroud)
导致以下警告:
Warning: …
Run Code Online (Sandbox Code Playgroud) 在我的控制器中,我有类似的东西:
switch ($type)
{
case '1':
$validation_rules = [
'a' => 'required',
'b' => 'required',];
break;
case '2':
$validation_rules = [
'd' => 'required',
'j' => 'nullable|numeric',];
break;
case '3':
$validation_rules = [
't1.x' => 'required|numeric',
't1.y' => 'required|numeric',];
break;
}
$request->validate($validation_rules);
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这样,因为它会使我的控制器大量增加.我正在寻找一种方法来使用请求验证.
这样的东西将成为我的目标:
public function store(XXRequest $request)
Run Code Online (Sandbox Code Playgroud)
并将验证的逻辑放在里面.
$qrtaskdeviceid = DB::table('qrtasks_devices')
->select('id')
->Where('deviceid', $pumpid)
->Where('devicetype', 'pump')
->get();
Run Code Online (Sandbox Code Playgroud)
返回:[{"id":4}]
我几乎尝试了一切来获得“4”,但失败了:
$qrtaskdeviceid->id
$qrtaskdeviceid->pluck('id')
$qrtaskdeviceid[id]
$qrtaskdeviceid->first();
Run Code Online (Sandbox Code Playgroud)
...
我还检查了 stackoverflow 和 google,但我找不到可以回答这个小问题的来源。