【问题标题】:Invalid route action: [ProductController]无效的路由操作:[ProductController]
【发布时间】:2021-08-06 23:12:49
【问题描述】:

我的观点如下 resources/views/shop/index.blade.php

我有一个名为 ProductController 的控制器。 在路线中,我有以下内容

Route::get('/',  [
    'uses' => 'ProductConroller',
    'as' => 'product.index'
]);

有一个错误; ProductController` 不可调用。 控制器类 ProductController 不可调用。您是否忘记添加 __invoke 方法或您的路由文件中缺少控制器的方法?

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ProductController extends Controller
{
    //

    public function getIndex()
    {
        return view('shop.index');
    }
}

拜托,我不知道还能做什么。我已经尝试了一切。 Laravel 8

【问题讨论】:

  • 正确的代码是 laravel 8 Route::get('/shop, [ProductController::class, 'getIndex']); 你在调用函数名时拼错了 index 应该是 getIndex
  • 你要么需要告诉路由器控制器上的什么方法用于 sta 所说的动作,要么你需要使用__invoke 方法使其成为单个动作控制器
  • @sta 无法正常工作。我现在才试过。
  • 现在显示错误 404,找不到页面
  • @lagbox 我已经尝试过多次 __invoke() 但没有找到,显示错误 404

标签: laravel


【解决方案1】:

我终于通过使用得到它

use App\Http\Controllers\ProductController;

Route::get('/', [ProductController::class, 'getIndex']);

这很有趣,我花了几个小时才弄清楚需要做什么。

【讨论】:

  • 它在 Laravel 8.0 中的新更新,您的旧代码在旧版本的 Laravel 中有效。
  • 是的,我曾经这样做过,但 Laravel 8.0 对我来说是全新的。我需要重新学习我的 Laravel 并作为初学者学习。
猜你喜欢
  • 2020-07-09
  • 2021-09-08
  • 2018-10-10
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
  • 2015-08-14
  • 2017-02-25
  • 1970-01-01
相关资源
最近更新 更多